如何在Eclipse中启用java代码热交换
我一直在尝试在Eclipse中使用热交换Java代码,但我不知道Eclipse中热交换Java代码的限制和规则是什么,所以我的努力经常失败。如果有人能提供一个关于如何在Eclipse中热交换代码的相对详细的解释,或者将我链接到一个,那就太好了 例如,如果我更改如何在Eclipse中启用java代码热交换,java,eclipse,hotswap,Java,Eclipse,Hotswap,我一直在尝试在Eclipse中使用热交换Java代码,但我不知道Eclipse中热交换Java代码的限制和规则是什么,所以我的努力经常失败。如果有人能提供一个关于如何在Eclipse中热交换代码的相对详细的解释,或者将我链接到一个,那就太好了 例如,如果我更改u的值,此代码将进行热交换: public class apples extends tuna { public static void main(String[] args) throws InterruptedExceptio
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);
}
}
}
有人能解释一下原因吗?是的,我确实选中了“build automatically”标志,并且正在调试模式下运行。我不能100%确定上面的示例,但一般来说规则是不能更改类的接口。例如,添加或删除方法、更改方法签名、添加/删除静态字段等。我认为为了热交换方法的源,该方法必须在调用堆栈中。在第一个示例中,已更改的方法被重复调用,而在第二个示例中,该方法被调用一次,然后才执行代码循环。如果该方法运行后代码发生更改,则该方法将不再位于调用堆栈中,并且无法获取代码更改。此处来得晚。使用如何?