java - 使用 7zip 扩展文件

标签 java 7zip

我正在尝试使用 7zip 扩展 zip 文件,但我不断收到 7zip 使用打印输出。

该 zip 存在于 c:\temp

相同的命令在批处理窗口中成功:

C:\TEMP>7z x "tryThis.zip"

我尝试将工作目录路径添加到文件中,并且也没有工作目录, 没有任何帮助。 - 我可能可以使用 CMD/c 命令运行它,但我更喜欢保持代码干净

我做错了什么?

谢谢!

String  pathTo7ZipExe = "c:\\program files\\7-zip\\7z.exe";
String fileName ="tryThis.zip";
String workingDir = "c:\\temp\\";

Process process = Runtime.getRuntime().exec(
                                     new String[]{pathTo7ZipExe},
                                     new String[]{" x \"" + fileName +"\""},
                                     new File(workingDir)); 

BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));  
String line;  
while ((line = in.readLine()) != null) {  
      System.out.println(line);  
}  
// wait for zip to end.
int exitVal = process.waitFor();  

最佳答案

请查看 Runtime.exec 的文档

您实际上想做的是不带参数调用 7-zip 并提供参数作为您的环境。环境是 Windows PATH 等。

所以你可能想做这样的事情:

Runtime.getRuntime().exec(new String[]{pathToZipExe, "x", fileName}, null, new File(workingDir));

另一方面,我强烈建议您查看 ZipInputStream它包含在 java 中 - 使用它您还可以解压 zip 文件。

干杯

关于java - 使用 7zip 扩展文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14904026/

相关文章:

java - 包 oracle.jdbc.driver 不存在

java - 如何将boilerpipe与本地html文件一起使用?

apache commons 使用 7zip 压缩

batch-file - 7zip 使用批处理文件创建空文件

java - 为 Java 游戏组织资源

java - 使数组中的一个位置等于一个新对象

java - 在 Java 中扩展双引号内的变量

windows - 用于在 Windows 上创建和提取受密码保护的 ZIP 文件的 7-Zip 命令?

c# - 解码 LZMA 流 c#

PowerShell脚本没有压缩正确的文件