加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

在JVM 1.8下远程调试java web启动

发布时间:2020-12-14 05:53:03 所属栏目:Java 来源:网络整理
导读:我有一个 Java Web Start应用程序,我以前通过一个快捷方式开始: "C:Program FilesJavajdk1.7.0_67binjavaws.exe" -J-Dfile.encoding=UTF-8 -J-Xdebug -J-Xnoagent -J-Xrunjdwp:transport=dt_socket,server=n,suspend=y,address=8200" http://xxx/yyy/z
我有一个 Java Web Start应用程序,我以前通过一个快捷方式开始:
"C:Program FilesJavajdk1.7.0_67binjavaws.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,address=8200"
"C:Program FilesJavajdk1.8.0_25binjavaws.exe" http://pont/dms/InstallDMS_debug.jnlp

但没有用.

我发现唯一的解决方案是使用Java控制面板设置参数,将它们直接添加到JVM.

Control Panel > Java > Java (tab) > View (button) > Runtime parameters (field)

如何设置1.8个好老版本的参数?

附: JDK 1.6 x32仍然适用于快捷方式. x64 1.7启动但引用了1.8 libs,所以我认为所有的JDK x64都是串通的.

解决方法

从(大约)版本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:Java64jdk1.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%binjavaws" %ONLINE_JNLP_URL%

endlocal

此外,我想注意到,对于Java WS应用程序的远程调试,运行JDK的JRE但不是公共JRE是至关重要的,否则您可以观察到JVM在执行主类之前终止.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读