假设我们有一个简单的Java程序,它只包含一个类:
public class HelloWorld {
private static void replacable(int i) {
System.out.println("Today is a nice day with a number " + i);
}
public static void main(String[] args) throws Exception {
for(int i = 0; i < 100000; ++i) {
replacable(i);
Thread.sleep(500);
}
}
Run Code Online (Sandbox Code Playgroud)
在编译并运行之后,输出将是:
今天是0号的好日子
今天是一个美好的一天,1号
今天是2号球员的好日子
今天是一个美好的一天,3号
...
我的问题:是否存在(或者是否存在)replacable在运行时交换方法的某种方式?有点像HelloWorld用新版本编写另一个版本replacable,编译它,然后在已经运行的JVM中编写旧版本?
所以,如果我像这样编写新版本:
private static void replacable(int i) {
System.out.println("Today is an even nicer day with a number " + i);
}
Run Code Online (Sandbox Code Playgroud)
是否有类似于Erlang的热代码交换,我可以这样做: …
目前的设置:
MainProject是一个图书馆计划
BranchProject是一个新项目,并以MainProject为参考
每当我调试并且MainProject中的文件处于焦点上时(实际上BranchProject只有图形和xml布局更改),"调试"窗口将打开一个只读的.class文件.我希望它打开.java文件,以便我可以直接编辑它.
我有2个项目,A和B.
项目B在他的构建路径>库中有A的类文件夹(Eclipse也认识到有一个"源附件"并添加了它.
A和B都在同一个工作区中.
当我Ctrl点击进入B Eclipse文件的项目A的函数时,打开.classA 的文件.但是如果我需要编辑该.java文件的版本,我必须手动在项目A中查找文件名并从项目资源管理器中打开它.
没有一个简单的方法从一个链接的资源去- > .java他的源文件或从去.class到.java手动更简单的方法比展开文件夹并打开文件?