JVisualVM:"无法检测到本地应用程序"

时间:2015-05-26 08:33:53

标签: java temp jvisualvm

我想使用JVisualVM监视本地Java应用程序。当我启动它时,弹出的本地java应用程序无法监控'或者'无法检测到本地应用程序'显示。我已阅读here这是一个权限问题。每当我向我(已登录用户)和所有人(Windows用户)授予对文件夹%TMP%hsperfdata_MY_USER_ID的完全访问权限时,我启动JVisualVM时都会重置权限。

我知道另一个解决方案是删除hsperfdata_MY_USER_ID,但为什么权限不起作用呢?权限文件夹是否重置了Windows功能?

系统:Windows 7

在cmd上测试以管理员身份启动。我使用相同的帐户,但我没有传递任何JVM参数,例如com.sun.management.jmxremote.port = XXXX。

3 个答案:

答案 0 :(得分:5)

对于那些有FAT类型文件系统的人来说:

  • 在NTFS磁盘上创建一个目录(例如e:\temp
  • 使用环境变量java启动jvisualvmTMP=E:\temp

为java设置环境变量有三个选项:

  • 在IDE中,转到项目选项或启动选项,找到“环境”条目,然后输入TMP=E:\temp
  • 打开cmd提示符,并在从同一提示符启动您的Java应用程序之前执行set TMP=E:\temp
  • 将您在cmd提示符下输入的两行放在.bat文件中。在bat文件的末尾选择添加pause,以防止在运行时异常或vm崩溃时控制台窗口消失。

同样,对于JVisualVM,请使用最后两个选项之一。

答案 1 :(得分:0)

我遇到了“无法监视本地应用程序”的问题,解决了这样的问题:

  1. 退出所有Java进程
  2. 删除现有文件夹%TMP%\ hsperfdata_username
  3. 启动jvisualvm,使用不同的大小写创建文件夹:%TMP%\ hsperfdata_USERNAME

我的问题和解决方案与权限无关,因此可能不适用于该问题中的原始问题。

另请参见https://visualvm.github.io/troubleshooting.html#jpswin

答案 2 :(得分:0)

这个答案有点琐碎,但可能仍然可以节省时间。

检查您的 java 应用程序没有使用“-XX:-UsePerfData”选项启动。