我正在编写一个程序,该程序从服务器导入文件 aClass.java,将其保存在我的项目中,编译它然后使用它。但有时服务器上的文件会被修改,完成此操作后,我的程序也会修改我项目中的文件,这就是问题:如果对服务器上的文件进行了修改,当我第一次运行我的程序时,它会更新我的文件,但它仍然使用旧版本,直到我第二次运行它时,它才会使用较新的版本。
我想了几个解决方案来解决这个问题,它们是:
- 尝试以编程方式强制重新启动我的程序,这样当我第一次运行它时,它会在过程中重新启动,因此会考虑最新版本 -> 我无法找到如何执行此操作
- 更新完成后初始化同一类的对象,从中调用我的 main 方法 -> 这里我的代码再次使用旧版本,所以这不能解决问题
- 我尝试使用 addShutdownHook,其中我尝试执行与上面相同的操作:初始化同一类的另一个对象,然后通过它调用 main 方法 -> 我收到以下异常“线程“AWT-Windows”java.lang.IllegalStateException 中的异常:正在进行关闭”
- 我创建了另一个类,它是我正在使用的类的副本,然后我尝试在更新文件后调用它,得到与上面相同的结果
有人能解决这个问题吗? 提前致谢
最佳答案
经过一番研究,我发现this link非常有帮助。我使用其中给出的示例在我的代码中重新加载类
关于Java:未使用最新版本的文件(在程序执行期间修改),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31208911/