我有一个使用 7zip 来解压缩文件的应用程序。我使用的代码如下:
Runtime prog = Runtime.getRuntime();
Process proc = prog.exec(System.getenv("ProgramFiles").concat("\\7-Zip\\7z x " + "\""+path+"\""+ " -o"+Values.temp_path));
InputStream stderr = proc.getErrorStream();
InputStream instr = proc.getInputStream();
InputStreamReader isr = new InputStreamReader(stderr);
InputStreamReader insr = new InputStreamReader(instr);
BufferedReader br = new BufferedReader(isr);
BufferedReader br2 = new BufferedReader(insr);
String line = null;
String line2 = null;
while ( (line = br.readLine()) != null & (line2 = br2.readLine()) != null){}
int exitVal = proc.waitFor();
其中 path 是文件的位置, temp_path 是解压缩文件的位置。
虽然这在我的计算机上运行良好,但我的同事在运行同一个应用程序时会出错。
在我的电脑中,变量 exitVal 的值通过方法 waitFor 设置为 0。在其他计算机上,我看到此变量设置为 1 (ERROR_INVALID_FUNCTION)。该应用程序在两台计算机上都是相同的,都使用 win xp 和相同版本的 7zip,我还能缺少什么?
谢谢你的帮助!
编辑:
我发现了两台电脑之间的区别。有效的安装了 java 7,而有问题的安装了 java 6