我使用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程序中找到任何方法。
暂无答案!
目前还没有任何答案,快来回答吧!