visualvm无法看到从cygwin启动的java进程

时间:2011-07-13 09:58:52

标签: java visualvm jdk-tools

如果我在cygwin控制台中启动java进程,然后启动visualVm,​​则后者无法看到前者。

如果我在Dos控制台中启动相同的过程,visualvm会认为它很好。我在jdk1.6.0_25。这在win7 32b和win7 64b都有64b jvm发生。

任何人都可以想到解释/解决方法吗?

4 个答案:

答案 0 :(得分:11)

我通过在Cygwin中运行VisualVM来解决问题。如果您不想使用远程JMX连接进行配置,可以使用Cygwin运行VisualVM和Java程序:

  

打开Cygwin控制台窗口,导航到visual_vm.exe并从Cygwin环境中运行该文件。

答案 1 :(得分:2)

我遇到了同样的问题。 vm没有自动显示,但我能够通过“添加JMX连接”连接,使用hostname和jmx.remote.port ...

在VisualVM上转到文件 - >添加JMX连接

localhost:3333

在启动时添加vm参数,例如:

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

答案 2 :(得分:2)

VisualVM可以自动检测在同一用户下运行的本地应用程序。因此,一种解释可能是cygwin进程在不同的用户下运行。确保VisualVM和受监视的应用程序在JDK 6更新25下运行.JDK 6 update 25修复了以下JDK bug #6938627,这可能会影响您的情况。

答案 3 :(得分:0)

@seanhodges答案的另一种方法是启动应用程序以使用修改后的环境进行调试,然后将其指向Windows User Temp目录。

例如,如果您通常这样做:

    ./gradlew run

并说您在Windows上的TEMP目录(根据您的User环境变量)是:

    T:\Temp

您可以改为以下之一:

    TMP=T:\\Temp ./gradlew run

    TMP=/cygdrive/t/Temp ./gradlew run

(它们似乎都可以工作)