使用eclipse远程调试jnlp应用程序

Jil*_*nee 8 java eclipse debugging jnlp

我正在调试一个jnlp应用程序,我曾经能够通过eclipse远程调试它,但现在不再了.

启动它的命令是:

 /usr/java/jdk1.6.0_14/jre/bin/java -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=1445 -Djnlpx.heapsize=64m,512m -DtrustProxy=true -Xverify:remote -Djava.security.policy=/lib/security/javaws.policy -Dfile.encoding=UTF-8 -Xbootclasspath/a:/usr/java/jdk1.6.0_14/jre/lib/deploy.jar:/usr/java/jdk1.6.0_14/jre/lib/javaws.jar:/usr/java/jdk1.6.0_14/jre/lib/plugin.jar -classpath /usr/java/jdk1.6.0_14/jre/lib/deploy.jar com.sun.javaws.Main launch.jnlp
Listening for transport dt_socket at address: 1445
Run Code Online (Sandbox Code Playgroud)

问题是,当我附加eclipse调试器时,它会关闭并重新启动; 所以调试器附加到第一个进程; 当它死了,调试器也是如此.

调试器脚本实际上并不重要; 因为如果suspend = n,jnlp进程会在调试器启动之前自行重新启动.

我试过跟踪它,但选项-XX:TraceSupport = true(以及我尝试过的其他变体)会导致jvm错误.

我正在使用Fedora 11,Eclipse Java EE IDE for Web Developers.(构建ID:20090621-0832)

我问是否有人知道如何解决这个问题,或者至少如何打开更好的日志记录(即将所有控制台输出捕获到日志中;这样我就可以看一下屏幕上闪烁的第一个控制台一毫秒)

谢谢!

Jil*_*nee 4

我的老板找到了答案:

\n\n
\n

\xe2\x80\x9c<property>\xe2\x80\x9d对于较新的 JRE,jnlp 文件中的标记似乎更具限制性。根据\n Sun 文档

\n\n

\xe2\x80\x9c对于不受信任的应用程序,只有在 JNLP 文件中设置的系统属性被认为是安全的,或者属性名称以“jnlp”开头时,才会由 Java Web Start 设置。或\n“javaws”。\xe2\x80\x9d

\n\n

看起来不受信任的状态会导致应用程序使用适当的属性再次启动。

\n
\n\n

重新编译并修复了一个希望不相关的问题(换行符导致签名的 APPLICATION.JNLP 和 launch.jnlp 看起来不“相同”)后,调试器现在正在工作。

\n