在 Java 程序中运行后如何删除可执行 JAR?

问题描述

我正在使用 Java 程序从私人在线数据库下载 JAR,然后使用以下代码运行它们:

ProcessBuilder pb = new ProcessBuilder(commands);
File jarFile = new File(JAR_DIR);
pb.directory(jarFile);
Process proc = pb.start();

使用此 JAR 运行良好,但我想在使用后删除每个 JAR,因为它们有很多,而且需要太多空间才能继续下载。

我一直在打印 JAR 中的每一行,然后等待它关闭(我也尝试在等待它关闭后销毁进程):

BufferedReader r = new BufferedReader(new InputStreamReader(proc.getInputStream()));
String line;
while(line = r.readLine()) != null)
    System.out.println(line);
proc.waitFor();

然后我使用 org.apache.commons.io.FileUtils 中的方法删除 JAR 所在的文件夹:

FileUtils.deleteDirectory(new File(jarDirectory));

但是,这会引发异常,指出无法删除 JAR 文件

我认为在删除之前我需要从 JVM 中删除 JAR 的路径,但我没有找到任何关于如何在另一个 Java 程序中执行此操作的信息。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)