Java: 最新版本的文件(在程序执行期间修改)未被使用
Java: Latest version of file (modified during execution of program) not being used
我正在编写一个从服务器导入文件 aClass.java 的程序,将它保存在我的项目中,编译它然后使用它。但有时服务器上的文件会被修改,完成后我的程序也会修改我项目中的文件,这就是问题所在:如果对服务器上的文件进行了修改,当我 运行 我的程序第一次更新我的文件,但它仍然使用它的旧版本,直到我 运行 它第二次使用较新的版本。
我想到了几个解决这个问题的方法,它们是:
- 尝试以编程方式强制重新启动我的程序,这样当我第一次 运行 它时,在进程中间它重新启动并因此考虑到最新版本 -> 我不是能够找到如何做到这一点
- 更新完成后初始化相同的对象class,从中调用我的主要方法 -> 这里我的代码再次使用旧版本,所以这不能解决问题
- 我尝试使用 addShutdownHook,其中我尝试执行与上面相同的操作:初始化相同的另一个对象 class 然后通过它调用 main 方法 -> 我得到以下异常 "Exception in thread "AWT -Windows" java.lang.IllegalStateException: 正在关机"
- 我创建了另一个 class,它是我正在使用的 class 的副本,然后我在更新文件后尝试调用它,我得到与上面相同的结果
有人能解决这个问题吗?
提前致谢
经过一些研究,我发现 this link 非常有帮助。我使用其中给出的示例在我的代码
中重新加载类
我正在编写一个从服务器导入文件 aClass.java 的程序,将它保存在我的项目中,编译它然后使用它。但有时服务器上的文件会被修改,完成后我的程序也会修改我项目中的文件,这就是问题所在:如果对服务器上的文件进行了修改,当我 运行 我的程序第一次更新我的文件,但它仍然使用它的旧版本,直到我 运行 它第二次使用较新的版本。
我想到了几个解决这个问题的方法,它们是:
- 尝试以编程方式强制重新启动我的程序,这样当我第一次 运行 它时,在进程中间它重新启动并因此考虑到最新版本 -> 我不是能够找到如何做到这一点
- 更新完成后初始化相同的对象class,从中调用我的主要方法 -> 这里我的代码再次使用旧版本,所以这不能解决问题
- 我尝试使用 addShutdownHook,其中我尝试执行与上面相同的操作:初始化相同的另一个对象 class 然后通过它调用 main 方法 -> 我得到以下异常 "Exception in thread "AWT -Windows" java.lang.IllegalStateException: 正在关机"
- 我创建了另一个 class,它是我正在使用的 class 的副本,然后我在更新文件后尝试调用它,我得到与上面相同的结果
有人能解决这个问题吗? 提前致谢
经过一些研究,我发现 this link 非常有帮助。我使用其中给出的示例在我的代码
中重新加载类