Java 热插拔/DCEVM不';t在Intellij IDEA中工作(社区版)
我在使用Intellij IDEA社区版本中的热交换功能时遇到困难。我的是v14.1.4 每次启动调试并更改java代码后,我都会单击RebuildProject并在确认重新加载类时按“Yes”。Intellij报告重新加载更改的类,但应用程序结果与以前相同。我只是在尝试最简单的Java应用程序(即,不在Tomcat、applet等场景中),只使用Java 热插拔/DCEVM不';t在Intellij IDEA中工作(社区版),java,intellij-idea,intellij-14,hotswap,dcevm,Java,Intellij Idea,Intellij 14,Hotswap,Dcevm,我在使用Intellij IDEA社区版本中的热交换功能时遇到困难。我的是v14.1.4 每次启动调试并更改java代码后,我都会单击RebuildProject并在确认重新加载类时按“Yes”。Intellij报告重新加载更改的类,但应用程序结果与以前相同。我只是在尝试最简单的Java应用程序(即,不在Tomcat、applet等场景中),只使用System.out.println、string concats等内容。我在调试模式中更改的只是方法体代码,而不是方法签名/名称。我搞不懂 在Ecl
System.out.println
、string concats等内容。我在调试模式中更改的只是方法体代码,而不是方法签名/名称。我搞不懂
在Eclipse中,我只需直接更改代码并按save,然后它就可以工作了
出了什么问题
(备注:
事实上,我正在尝试使用DCEVM,它使结构更改成为可能(例如更改类名、方法名、添加方法等),我认为它可以解决Intellij中的热交换问题。不用说,它不起作用
在eclipse中,我成功地使用了DCEVM,并且可以在调试期间更改方法名称
我进一步尝试了hotswap代理,但它仍然不起作用;我看到一篇文章说IDE必须通过端口5000连接到JVM,但无论我如何尝试,Intellij console显示它仍然通过随机端口连接(下面的51018):
已连接到目标VM,地址:'127.0.0.1:51018',传输:'socket'
是否可以强制它通过一个特定端口连接?
在运行/调试配置中添加
DEBUG\u OPT
环境变量无效)在从Jetbrains找到一个反馈后,发现这是Intellij的设计行为:
换句话说,问题与我如何测试热交换有关:
public class Main {
// /*
public static String getName() {
return "James"; // <=== (2)
}
//*/
public static void main(String[] args) {
System.out.println("Hello " + getName()); // <=== (1)
}
}
公共类主{
// /*
公共静态字符串getName(){
return“James”;//Eclipse(据我记忆所及)删除必要的帧以摆脱过时的代码。
public class Main {
// /*
public static String getName() {
return "James"; // <=== (2)
}
//*/
public static void main(String[] args) {
System.out.println("Hello " + getName()); // <=== (1)
}
}