zoukankan      html  css  js  c++  java
  • JDK7下VisualVm插件无法链接到插件中心

      VisualVM 是一款免费的,集成了多个 JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优。这些功能包括生成和分析海量数据、跟踪内存泄漏、监控垃圾回收器、执行内存和 CPU 分析,同时它还支持在 MBeans 上进行浏览和操作。不比哪些收费的监控软件逊色多少。

      VisualVM更棒的地方是在于它能通过安装插件来扩展功能。

    看了上面的介绍,我忍不住心动了尝试了一下VisualVM 来分析一下JVM。既然有插件扩展更多的功能,那肯定要尝试一下,然而成功的道路总是充满曲折的。

    安装插件过程中的遇到以下两个问题:

    1. VisualVm 默认的插件中心的网址连不上去

    这是因为Java VisualVM默认的插件中心网址已关闭服务,插件中心的服务器已经移交到github上,地址是https://visualvm.github.io/pluginscenters.html;
    然后,在根据不同的JDK版本选择不同的插件地址。更改VisualVM插件中心的地址。

    2. JDK1.7任然无法链接插件中心

    我的电脑上安装了两个JDK,分别是JDK1.8和JDK1.7,再更改了正确的插件中心地址后,JDK1.8的VisualVM可以正常安装插件,然而JDK1.7却还是不行,链接时报了以下错误:

    VIsualVM_1.png

    这就有点奇怪了。

    在折腾了多次后,终于看到网上的一个说法:

    JDK1.7默认支持TSL1.0,而JDK1.8默认支持TSL1.2

    我们发现插件中心的网址正是https开头的,那我们对这个网址用Wireshark抓一下包

    果然,插件中心的服务器上使用的正是TSL1.2的版本。那么解决方案有两种:

    1. 更改VisualVM的支持的TSL版本号,改成V1.2版本。

    但好像找不到对应的设置。但可以使用系统属性来设置,看下面的代码。还有,在项目开发中也可能会遇到这个问题,那么同样也可以使用以下代码来指定JDK1.7的TSL版本号:System.setProperty("https.protocols", "TLSv1.2");

    1. 退回到http协议,用这种方法来解决此问题有点麻烦。经过一翻努力,发现所有插件的地址是由XML文件保持的,你还必须修改XML里面的每个插件下载地址成http,这意味着你必须那个下载XML文件,离线维护一个版本库,无法在线更新。但这也算一种解决方案,记录一下吧。

  • 相关阅读:
    Mongodb---记一次事故故障
    扎克伯格的中文夜:想要成功就不能放弃
    TTS-零基础入门之停止列表中单条语音播报
    卡尔曼滤波(Kalman Filter) 的进一步讨论
    2014.8.12-AKKA和Actor model 分布式开发环境学习小结
    c# 删除程序占用的文件,强力删除文件,彻底删除文件,解除文件占用
    Spring源代码解析和配置文件载入
    java调用c++ dll出现中文乱码
    Android任务栈TaskStack
    应用中清理缓存应用实现
  • 原文地址:https://www.cnblogs.com/jinggod/p/8503118.html
Copyright © 2011-2022 走看看