java - 如何在Eclipse中启用java代码热交换

标签 java eclipse hotswap

我一直在尝试在 Eclipse 中使用热交换 Java 代码,但我不知道 Eclipse 中热交换 Java 代码的限制和规则是什么,所以我的努力​​经常失败。如果有人可以提供有关如何在 Eclipse 中热交换代码的相对详细的解释,或者将我链接到一个,那就太好了。

例如,如果我更改 u 的值,此代码就会热交换:

public class apples extends tuna {

    public static void main(String[] args) throws InterruptedException {
        while (true) {
            ddop();
            Thread.sleep(1000);
        }
    }

    public static void ddop() {
        int u = 3;
        System.out.println(u);
    }
}

但是这段代码没有:

public class apples extends tuna {
    static int u;
    public static void main(String[] args) throws InterruptedException {
        int u = 3;
        while (true) {
            System.out.println(u);
            Thread.sleep(1000);
        }
    }
}

谁能解释一下为什么?是的,我确实选中了“自动构建”标志,并且正在 Debug模式下运行。

最佳答案

我相信为了热交换方法的源,该方法必须位于调用堆栈中。在第一个示例中,更改的方法被重复调用,而在第二个示例中,该方法被调用一次,然后代码才会循环。如果方法运行后代码发生更改,则该方法永远不会再次出现在调用堆栈中,并且无法获取代码更改。

关于java - 如何在Eclipse中启用java代码热交换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11963320/

相关文章:

java - ClassCastException 与机器之间的 webapp

java - cron、任务队列和应用程序版本

java - 使用 Java(流)多线程/处理的生产者消费者

java - 如何更新 Eclipse 状态行?

jvm - 如何在不使用 IDE 的情况下进行 HotSwapping?

weblogic - 带有 DCEVM 和 HotSwapAgent 的 WebLogic 上的奇怪 java.beans.Introspector 行为

java - 重新启动数据库后,Websphere 应用程序服务器 5.1 数据源不再有效

java - 异常: access denied ("java.net.SocketPermission" "localhost:80" "listen,resolve")

javascript - 不明白如何在使用 PhoneGap 时将数据从 Android Activity 传递到 HTML UI

java - 使用 Intellij 10.X 和 tomcat 6.X 修改后热部署 JSP