Java Web Startアプリケーションがあります。これはショートカットから開始するために使用しました:
"C:\Program Files\Java\jdk1.7.0_67\bin\javaws.exe" -J-Dfile.encoding=UTF-8 -J-Xdebug -J-Xnoagent -J-Xrunjdwp:transport=dt_socket,server=n,suspend=y,address=8200" http://xxx/yyy/zzz.jnlp
しかし、JDK 1.8をインストールした後、すべてが機能しなくなり、私のjavawsには追加のX || Dパラメーターが表示されません。私はこの方法を試しました:
setenv JAVAWS_VM_ARGS "-Dfile.encoding=UTF-8 -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=n,suspend=y,address=8200"
"C:\Program Files\Java\jdk1.8.0_25\bin\javaws.exe" http://pont/dms/InstallDMS_debug.jnlp
しかし、役に立たない。
私が見つけた唯一の解決策は、Javaコントロールパネルを使用してパラメータを設定し、JVMに直接追加することです。
Control Panel > Java > Java (tab) > View (button) > Runtime parameters (field)
1.8古き良き方法のパラメータを設定するにはどうすればよいですか?
P.S. JDK 1.6 x32は、ショートカットでも正常に機能します。 x64 1.7は起動しますが、1.8ライブラリを参照しているため、すべてのJDKx64が共謀していると思います。
結局のところ、それはまだ動作します
set Java_TOOLS=-agentlib:jdwp=transport=dt_socket,address=9999,server=y,suspend=y
バットファイルで。
(おおよその)バージョン1.7.0_022から開始Java Web Start Launcherは、提供されたJVM引数とプロパティの大部分をセキュリティで保護されていないものとして扱うことにより、それらのリストを大幅に変更します。
JNLPファイルを実行する前に、Javaコントロールパネルパラメータの代わりに、上記のデバッグスイッチを使用してJava_TOOL_OPTIONS環境変数を設定できます。 ( http://www.Oracle.com/technetwork/Java/javase/envvars-138887.html#gbmsy および http://docs.Oracle.com/javase/8を参照) /docs/platform/jvmti/jvmti.html#tooloptions )。これは、以前のIvanの回答の修正です。
たとえば、JDK1.8.0_60でテストされた次のバッチファイルを試すことができます。
setlocal
set JAVAWS_TRACE_NATIVE=1
set Java_TOOL_OPTIONS=-agentlib:jdwp=transport=dt_socket,address=8002,server=y,suspend=n %Java_TOOL_OPTIONS%
set Java_HOME_64=c:\Java\64\jdk1.8
set Java_HOME=%Java_HOME_64%
set JDK_JRE_HOME=%Java_HOME%\jre
set JRE_HOME=%JDK_JRE_HOME%
set ONLINE_JNLP_URL=http://pont/dms/InstallDMS_debug.jnlp
"%JRE_HOME%\bin\javaws" %ONLINE_JNLP_URL%
endlocal
さらに、Java WSアプリケーションのリモートデバッグでは、パブリックJREではなくJDKのJREを実行することが不可欠です。そうしないと、メインクラスを実行する前にJVMが終了することがわかります。
Saeid Nourianのコメントを露骨に盗む-答え:
追加 -Xdebug -agentlib:jdwp=transport=dt_socket,address=9999,server=y,suspend=y
Javaコントロールパネルの引数に。