2012-02-27 41 views

回答

1

取决于你的JVM,但热插拔在Eclipse Java 1.5中的次工作对我来说,没有技巧在Sun的HotSpot JVM回来。这里是a related Sun's bug。你使用哪种JVM?

public class Test { 
    private static int ctr = 0; 
    public static void main(String[] args) { 
     while (true) { 
      method(); 
      try { 
       Thread.sleep(200); 
      } catch (InterruptedException e) { 
       System.err.println("Interrupted"); 
      } 
     } 
    } 

    private static void method() { 
     System.out.println(ctr); 
    } 
} 

我改变System.out.println(ctr);System.out.println(ctr++);,和我的输出改变为递增序列。

+0

Java版本:1.6.0_30。当我使用断点时,我可以使用热切换。但是,如果代码在我保存时运行,那么我的修改不会被采用。 – yohannc 2012-02-27 14:47:01

+0

好的,你在Debug模式下运行吗?参见[这太问题](http://stackoverflow.com/questions/2673554/hot-code-replace-not-working-eclipse-doesnt-change-any-code-on-jboss)为可能的解决方案。 – 2012-02-27 15:55:35

+0

是的,我运行在调试模式下,不像你的链接问题,应用了更改。测试自己,你会看到。创建一个项目,一个主要方法和另一个方法。在第二种方法中,放置一个由无限循环包围的输出消息。然后调试它。如果您对邮件进行了更改,并保存了任何内容,并且您的文件不再链接。因此,做一个新的尝试,启动调试。在输出消息上添加一个断点,将其更改并保存。现在恢复,没关系。但是在调试他的应用程序时,这与步骤相比太多了。 – yohannc 2012-02-27 16:40:37