我们知道对于一个java文件,如Test.java,首先需要通过javac命令(javac Test.java)进行编译,生成class文件,再将class文件在jvm上进行加载运行,也就是java命令(java Test)。
但是对于以下应用场景:正在运行的java程序,即class文件已经在jvm中运行加载,如果原来的java程序有所改动,重新生成了class文件,但是又不希望kill掉原先的java程序,该怎么做呢?springloaded提供了一个思路。
我是在eclipse下实验的,先建立一个SpringloadedTest的工程,在工程下面创建一个Test的java文件,代码如下:
1 importjava.util.concurrent.TimeUnit;2 public classTest {3
4 public static void main(String[] args) throwsException{5 Reload reload = newReload();6
7 while (true) {8 reload.load();9 TimeUnit.SECONDS.sleep(3);10 }11 }12
13 public static classReload {14
15 public voidload() {16 System.out.println("load!");17 }18 }19 }
然后,在项目上右键,Run As->Run Configurations->Arguments->VM arguments,配置如下的参数,也可以在后面加上-Dspringloaded=verbose用来显示详细的重