Java小程序无法使用applet的远程调试

时间:2014-03-18 06:08:05

标签: java applet remote-debugging

我试图对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"

2 个答案:

答案 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的具体信息:

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

希望能提供帮助。

答案 1 :(得分:0)

我确实找到了这个问题的问题。我有一个包含多个小程序的页面。我已经为远程调试设置了Java参数。每当我加载页面时,它会为页面加载两个JVM,我不知道为什么。所以对于第一个JVM,它使用端口号。提到听。但对于第二个JVM,同样的端口没有。应该被用作全局定义的Java参数。所以第二个JVM在等待端口释放时会挂起。

我确实想出了解决此问题的方法,如果有人需要,请告诉我。