我试图对Java applet使用远程调试。 我正在使用Java 7更新51,当我尝试加载applet时,它在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"
答案 0 :(得分:0)
Biscuit可能你错过了一些编译器标志(例如" lines,vars,source")以允许远程调试。
例如,您是否正在使用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"
另一方面,你可以检查的是将暂停标志设置为&#34;是&#34;,它是&#34; 暂停= y &#34 ;.除非您将调试器连接到您的端口,否则不会启动您的应用程序。
您可以在这里查看有关jboss的具体信息:
始终检查停止防火墙。如果是iptables,您可以执行以下命令:
service iptables stop
哦,您可以尝试的另一件事是检查您的端口当前是否被其他进程使用:
In windows:
netstat -nab
Linux:
netstat -nap
希望能提供帮助。
答案 1 :(得分:0)
我确实找到了这个问题的问题。我有一个包含多个小程序的页面。我已经为远程调试设置了Java参数。每当我加载页面时,它会为页面加载两个JVM,我不知道为什么。所以对于第一个JVM,它使用端口号。提到听。但对于第二个JVM,同样的端口没有。应该被用作全局定义的Java参数。所以第二个JVM在等待端口释放时会挂起。
我确实想出了解决此问题的方法,如果有人需要,请告诉我。