如何删除执行jar文件(How to delete a executing jar file)

2019-09-23 15:02发布

我已经创建了一个应用程序,在这种基础上的操作,它修改属性罐内文件。

我能够创建一个新的临时罐子更新的变化。 但不能重命名的jar文件到现有的jar文件名。 由于它在运行,我不能删除和重命名。

任何一个可以提出任何行动或建议删除该JAR(目前执行),并重新命名临时罐子这个名字?

我已经做了应用: http://java.net/projects_tags/jeazyprops

Answer 1:

可能是你需要编写自定义的类装载器(扩展类加载器),它使您可以加载/卸载罐子。 您应该能够删除的罐子,如果你可以卸载的罐子。

相关链接http://docs.oracle.com/javase/tutorial/deployment/jar/jarclassloader.html

我可以动态地卸载和重装JAR(相同的其他版本)?



Answer 2:

你的问题是默认ClassLoader是预先的Java 1.7的用途-它锁定任何广口瓶,它的负载,直到执行完成不释放罐子。 最简单的解决方法是使用Java 1.7应该解决这个问题。 否则,你可以编写自己的定制ClassLoader (啊)。 默认ClassLoader : http://docs.oracle.com/javase/6/docs/api/java/net/URLClassLoader.html

编辑

下面是从Oracle说,他们固定它在Java中1.7注: http://openjdk.java.net/projects/jdk7/features/#f584



Answer 3:

我没有看到更换您从程序中执行的jar的可能性。
建议的方法。
创建一个简单的类,只是启动您的现有应用程序新的罐子。 塔发射前应该检查temp.jar存在,如果存在,删除原和重命名temp.jar原始。 在创建后,您的应用程序temp.jar ,劳克使用发射器类Runtime.exec并退出。 您的应用程序将与新的JAR重新启动。



文章来源: How to delete a executing jar file