当前位置:  开发笔记 > 编程语言 > 正文

如何在Java Web Start(JNLP)下调试应用程序?

如何解决《如何在JavaWebStart(JNLP)下调试应用程序?》经验,为你挑选了4个好方法。

我知道如何使用Eclipse调试远程Java VM,但是如何使用Java Web Start程序来完成它.我遇到的问题只出现在Java Web Start中.它必须与安全相关.

我需要一个适用于当前Java VM(如1.6.0_12)的解决方案.



1> Kai Huppmann..:

它与您要远程调试的任何其他Java进程完全相同:您必须为VM(-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=n,suspend=y,address=12345 )设置一些参数,然后连接到给定端口.在Java webstart 6.0中,可以使用-J选项在早期版本中通过环境变量JAVAWS_VM_ARGS来完成.详情请见此处.



2> mkoeller..:

手动启动JWS VM.这样您就可以提供启动参数来打开调试端口.这是一个描述,它是这样的:

set JAVAWS_TRACE_NATIVE=1
set JAVAWS_VM_ARGS="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8989,server=y,suspend=n"
javaws http://server:port/descriptor.jnlp


只需注意,在Windows中(在XP上测试)当您设置`JAVAWS_VM_ARGS`时,您必须OMIT THE DOUBLE QUOTES`设置JAVAWS_VM_ARGS = -Xdebug -Xnoagent -Djava.compiler = NONE -Xrunjdwp:transport = dt_socket,address = 8989,server = Y,暂停= N`

3> 小智..:

至于较新版本的Java(Java 8u20 +和Java 7u70 +),我遇到像-Xrunjdwp这样的参数不能直接传递,也不能使用JAVAWS_VM_ARGS.消息 Rejecting attempt to specify insecure property: -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 开始显示在控制台输出中.

对我有用的唯一解决方案是将这些参数传递给JAVA_TOOL_OPTIONS系统变量.


我试过这个,但是某种安全检查必须阻止我的javaws启动(使用JAVA_TOOL_OPTIONS它不能启动,如果没有它会启动).

4> Marco Montel..:

您还可以使用-J选项向javaws可执行文件提供debug参数

例:

javaws.exe -J-Xdebug -J-Xnoagent -J-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000 http://server:port/descriptor.jnlp

推荐阅读
小色米虫_524
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有