8

我正在调试一个 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

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

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

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

我正在使用 Fedora 11,面向 Web 开发人员的 Eclipse Java EE IDE。(内部版本号:20090621-0832)

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

谢谢!

4

2 回答 2

4

这篇博文有环境变量,您可以设置它来调试 jnlp。这一直对我有用。

  set JAVAWS_TRACE_NATIVE=1

  set JAVAWS_VM_ARGS=-Xdebug -Xnoagent -Djava.compiler=NONE 
            -Xrunjdwp:transport=dt_socket,address=8989,server=y,suspend=y
  javaws http://server:port/descriptor.jnlp
于 2009-11-04T00:23:08.953 回答
4
于 2009-11-04T16:24:45.123 回答