我有一个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之后,它们都停止了工作,我的javaw没有看到任何额外的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控制面板设置params,将它们直接添加到JVM。
Control Panel > Java > Java (tab) > View (button) > Runtime parameters (field)
如何为1.8岁的方式设置参数?
P.S。 JDK 1.6 x32仍适用于快捷方式。 x64 1.7启动但引用1.8库,所以我认为所有JDK x64都是串通的。
答案 0 :(得分:8)
从(大约)版本1.7.0_022开始,java web start启动程序通过将大量的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)。这是对以前伊万的修正。答案。
例如,您可以尝试以下为JDK 1.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应用程序的远程调试,必须运行JDK的JRE而不是公共JRE,否则您可以在执行主类之前观察到JVM终止。
答案 1 :(得分:6)
大肆窃取Saeid Nourian的评论答案:
将-Xdebug -agentlib:jdwp=transport=dt_socket,address=9999,server=y,suspend=y
添加到Java控制面板中的参数。
答案 2 :(得分:5)
毕竟它仍然适用于
set JAVA_TOOLS=-agentlib:jdwp=transport=dt_socket,address=9999,server=y,suspend=y
在bat文件中。