在 Java 中使用 ProcessBuilder 解压缩文件



我修改了我在这个问题和这个问题中找到的一些建议,以获得下面的代码片段,挑战在于它运行没有错误,但没有提取release.zip的内容,任何指向我缺少什么的指针?

public static void main(String[] args) throws IOException, InterruptedException{
/* Unzip the release */
File folder = new File("./input/");
ProcessBuilder pb = new ProcessBuilder(
"C:/Program Files/7-Zip/7z.exe",
"x",
"./input/matsimInput/release.zip",
"new");
pb.directory(folder);
pb.redirectErrorStream(true);
Process pbProcess = null;
int pbExitCode = 1;
pbProcess = pb.start();
pbExitCode = pbProcess.waitFor();
if(pbExitCode != 0) {
throw new RuntimeException("Could not unzip release for MATSim run");
}
}

使用 7-zip 是一种选择。如果你安装了java,你也可以使用jar。 修改流程生成器命令的示例: ProcessBuilder pb = new ProcessBuilder("cmd.exe","/C", "jar", "-xf" "(;

这里:-x 表示提取,-f 表示文件名。 这将提取您拥有 java 程序的当前目录中的文件。

最新更新