2009-07-05 73 views
1

在eclipse中,我正在编写一些代码来抓取特定的网页并下载一个applet,然后它将它添加到JFrame中并执行。如果我运行程序而不添加任何断点,它可以很好地工作。它加载小程序,并开始运行。但是,如果我向小程序更新(Graphics g)方法添加断点,它会停止刷新。很显然,这是预料之中的,但它实际上并没有真正跳过断点。Java:断点如何不停止绘制applet而不会触发*?

我知道断点通常与我的设置一起工作,事实上,如果我向完全相同的小程序的paint(Graphics g)方法添加断点,则它会在您期望时触发。

唯一稍微不合常规的事情就是我没有显示的applet的来源。相反,我只是在方法条目上设置一个断点。

如果我在applet运行时禁用断点,它将恢复绘制,但如果再次启用它,它不会总是停止重绘。

我不知道这是否可能是eclipse/jvm的预期行为,或者如果我发现了一个错误。如果它是一个错误,是eclipse还是jvm中的错误?

回答

1

只是一个建议:你能检查你正在执行你的applet的JVM的版本是什么吗?

有提到的troubles with breakpoints(也detailed here)和最新的jdk6.0_u14,
所以如果你使用这个版本,你可能想,如果同样的行为与6.0_u13观察检查。

+0

我实际使用 Java版本 “1.6.0_0” OpenJDK的运行时环境(IcedTea6 1.5)(6b16-4) OpenJDK的客户端虚拟机(建设14.0-B15,混合模式,共享) 所以我不知道在sun版本中对应的版本(我在版本号中看到14,15和16) 无论哪种方式,我都会尝试安装旧版本(可能是java 5),看看我是否仍然得到这个错误。 – 2009-07-05 23:07:23

+0

和Java 5得到相同的错误。 我认为问题可能是我把断点放在jar的本地副本中,但实际上是从URLClassLoader加载类。 – 2009-07-06 01:50:05

0

看看显示线程的调试面板。它可能是另一个线程,而不是你期望的断点。