cygwinコンソールでJavaプロセスを開始してから、visualVmを起動すると、後者は前者を見ることができません。
Dosコンソールで同じプロセスを開始すると、visualvmはそれを正常に認識します。私はjdk1.6.0_25にいます。これは、win732bと64bjvmを使用するwin764bの両方で発生します。
誰でも説明/回避策を考えることができますか?
Cygwin内からVisualVMを実行して問題を修正しました。リモートJMX接続を使用してプロファイリングしたくない場合は、Cygwinを使用してVisualVMとJavaプログラムの両方を実行できます。
Cygwinコンソールウィンドウを開き、visual_vm.exeに移動して、Cygwin環境内からそのファイルを実行します。
私も同じ問題を抱えていました。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
VisualVMは、同じユーザーの下で実行されているローカルアプリケーションを自動的に検出できます。したがって、1つの説明は、cygwinプロセスが別のユーザーの下で実行されているということです。VisualVMと監視対象アプリケーションの両方がJDK6アップデート25で実行されていることを確認してください。JDK6アップデート25には、ケースに影響を与える可能性のある次のJDKバグ#6938627の修正が含まれています。
@seanhodgesの回答とは逆のアプローチは、アプリケーションを起動して、変更された環境でデバッグし、WindowsUserTempディレクトリに戻すことです。
たとえば、通常行う場合:
./gradlew run
そして、Windows上のTEMPディレクトリ(ユーザー環境変数による)は次のようになります。
T:\Temp
代わりに、次のいずれかを実行できます。
TMP=T:\\Temp ./gradlew run
TMP=/cygdrive/t/Temp ./gradlew run
(どちらも機能しているようです)