Java 小程序不适用于小程序的远程调试
Posted
技术标签:
【中文标题】Java 小程序不适用于小程序的远程调试【英文标题】:Java applets doesnt not working with Remote debugging of applet 【发布时间】:2014-04-23 16:12:12 【问题描述】:我尝试对 Java 小程序使用远程调试。 我正在使用 Java 7 update 51,当我尝试加载小程序时,它会显示在 Java 控制台中,然后被触发。
network: Connecting http://domain.com/useradmin3.gif with proxy=DIRECT
network: Connecting http://domain.com/ with proxy=DIRECT
preloader: Stop progressCheck thread
我在 Javacpl 中传递了以下作为运行时参数: "-Djava.compiler=NONE -Xnoagent -Xdebug -Xrunjdwp:transport=dt_socket,address=8007,server=y,suspend=n"
【问题讨论】:
看看这是否有帮助sharingtechexperiencies.blogspot.in/2013/05/… @TechSpellBound 我确实尝试了该链接中提到的所有问题。它并没有真正帮助。 【参考方案1】:Biscuit 可能缺少一些编译器标志(如“行、变量、源”)以允许远程调试。
例如,您是否使用 Ant,您需要将此行添加到您的 javac:
<!-- Javac lines, vars, source compiler flags -->
<javac srcdir="..." destdir="..." classpathref="..." debug="true" debuglevel="lines,vars,source" />
然后在你的执行脚本中添加:
<!-- debug configurations: modify the port you want-->
<jvmarg value="-Xdebug"/>
<jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=4060"/>
另一方面,如果您使用 Maven,可以在 中添加相同的标志,如下所示:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<!-- Necessary in order for the debug levels to be considered-->
<debug>true</debug>
<debugLevel>lines,vars,source</debugLevel>
</configuration>
</plugin>
</plugins>
</build>
如果使用 Jetty,和以前一样...你需要有以下变量:
export MAVEN_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=n"
另一方面,您可以检查将 suspend flag 设置为“yes”,即“suspend=y”。除非您将调试器连接到您的端口,否则这不会启动您的应用程序。
这里可以查看jboss的具体信息:
http://webdev.apl.jhu.edu/~jcs/ejava-javaee/coursedocs/605-784-site/docs/content/html/devenv-jboss-setup.html#enable-jboss-debug
并始终检查停止防火墙。如果是 iptables,可以执行以下命令:
service iptables stop
哦,您可以尝试的另一件事是检查您的端口当前是否被另一个进程使用:
In windows:
netstat -nab
Linux:
netstat -nap
希望能提供帮助。
【讨论】:
感谢您的时间和精力。我确实尝试过使用suspend=y,我禁用了防火墙,还验证了端口是否正在使用中,但我没有帮助。我禁用了 jre 7u51 并安装了不推荐的 jre 6u29,但确实解决了我的问题。我现在可以进行调试,但我仍然不确定到底是什么问题。 这很有趣。您可以创建一个关于它的问题,只是为了知道为什么会这样。抱歉帮不了你。 感谢您的回复。我确实弄清楚了这个问题的原因。我有一个包含多个小程序的页面。我已经为远程调试设置了 Java 参数。每当我加载页面时,它都会为页面加载两个 JVM,我不知道为什么。因此,对于第一个 JVM,它使用端口号。提到听。但是对于第二个 JVM,相同的端口号。应该使用 Java 参数是全局定义的。所以第二个 JVM 在等待端口空闲时挂起。【参考方案2】:我确实弄清楚了这个问题的原因。我有一个包含多个小程序的页面。我已经为远程调试设置了 Java 参数。每当我加载页面时,它都会为页面加载两个 JVM,我不知道为什么。因此,对于第一个 JVM,它使用端口号。提到听。但是对于第二个 JVM,相同的端口号。应该使用 Java 参数是全局定义的。所以第二个 JVM 在等待端口空闲时挂起。
我确实想出了解决此问题的方法,如果有人需要,请告诉我。
【讨论】:
以上是关于Java 小程序不适用于小程序的远程调试的主要内容,如果未能解决你的问题,请参考以下文章
小程序开发工具支持真机调试上千违规“借贷”小程序被永久封禁iOS最新版微信中小程序出现眼中bug | 周报