如何在java程序中运行可执行jar之后删除它?

oxf4rvwz  于 2021-06-29  发布在  Java
关注(0)|答案(0)|浏览(346)

我使用java程序从一个私有在线数据库下载JAR,然后使用以下代码运行它们:

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

使用这个jar运行得很好,但是我想在使用它之后删除每个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文件。
我认为在删除jar之前,我需要从jvm中删除jar的路径,但是我还没有在另一个java程序中找到任何方法。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题