windows下Jconsole本地连接失败的解决方法

    在myeclipse里编写demo程序后运行,打开jconsole发现在本地进程列表发现只有jconsole本身,没有期望中的myeclipse进程和demo进程。

搜索“jconsole本地连接失败”大多数给出的答案都是:

在Run configurations……中 加入以下运行参数

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=8011
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

然后使用jconsole远程连接"localhost:8011",方法可行

但是究其原因:

  在 Win32 系统上,每个 java 进程启动之后都在 %TMP%/hsperfdata_useruser为当前登录用户名)目录下建立一个以该 java 进程 pid 为文件名的文件,用以记录该 java 进程的一些信息。而 jconsole 和 jps 正是利用这些文件来获取当前系统中 java 进程的信息的。

    在CMD命令行输入set tmp 显示临时目录为"TMP=C:\Users\我的用户名\AppData\Local\Temp",而在java程序中打印System.getProperty("java.io.tmpdir")显示为"C:\Windows\Temp",

    运行demo程序发现在"C:\Windows\Temp\hsperfdata_我的用户名"发现新创建的vmid文件。将此文件复制到"C:\Users\我的用户名\AppData\Local\Temp\hsperfdata_我的用户名"下,此时打开jconsole即可看到本地demo进程。


转载于:https://my.oschina.net/OQKuDOtsbYT2/blog/412132

你可能感兴趣的:(windows下Jconsole本地连接失败的解决方法)