19

cygwinコンソールでJavaプロセスを開始してから、visualVmを起動すると、後者は前者を見ることができません。

Dosコンソールで同じプロセスを開始すると、visualvmはそれを正常に認識します。私はjdk1.6.0_25にいます。これは、win732bと64bjvmを使用するwin764bの両方で発生します。

誰でも説明/回避策を考えることができますか?

4

4 に答える 4

13

Cygwin内からVisualVMを実行して問題を修正しました。リモートJMX接続を使用してプロファイリングしたくない場合は、Cygwinを使用してVisualVMとJavaプログラムの両方を実行できます。

Cygwinコンソールウィンドウを開き、visual_vm.exeに移動して、Cygwin環境内からそのファイルを実行します。

于 2012-02-07T13:01:45.527 に答える
4

私も同じ問題を抱えていました。vmは自動的に表示されませんでしたが、hostnameとjmx.remote.portを使用して、「AddJMXConnection」を介して接続できました...

VisualVMで、[ファイル]->[JMX接続の追加]に移動します

localhost:3333

起動時にvmパラメータを追加します。例:

 -Dcom.sun.management.jmxremote.port=3333
 -Dcom.sun.management.jmxremote.ssl=false
 -Dcom.sun.management.jmxremote.authenticate=false
于 2011-07-13T13:13:29.590 に答える
2

VisualVMは、同じユーザーの下で実行されているローカルアプリケーションを自動的に検出できます。したがって、1つの説明は、cygwinプロセスが別のユーザーの下で実行されているということです。VisualVMと監視対象アプリケーションの両方がJDK6アップデート25で実行されていることを確認してください。JDK6アップデート25には、ケースに影響を与える可能性のある次のJDKバグ#6938627の修正が含まれています。

于 2011-07-14T13:56:34.750 に答える
0

@seanhodgesの回答とは逆のアプローチは、アプリケーションを起動して、変更された環境でデバッグし、WindowsUserTempディレクトリに戻すことです。

たとえば、通常行う場合:

    ./gradlew run

そして、Windows上のTEMPディレクトリ(ユーザー環境変数による)は次のようになります。

    T:\Temp

代わりに、次のいずれかを実行できます。

    TMP=T:\\Temp ./gradlew run

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

(どちらも機能しているようです)

于 2019-10-24T12:54:09.267 に答える