我有一個應用程序使用7zip爲了解壓縮文件。我使用的代碼如下:Java - Running 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是解壓縮的位置。
雖然這在我的計算機上正常工作,但我的同事在運行同一個應用程序時會出錯。
在我的計算機中,通過waitFor方法將變量exitVal的值設置爲0。在其他計算機中,我看到此變量設置爲1(ERROR_INVALID_FUNCTION)。這兩款電腦的應用程序都是相同的,都使用win xp和相同版本的7zip,還有什麼可以丟失?
感謝您的幫助!
編輯:
我發現2臺計算機之間的區別。一個工作有java 7安裝,而問題有java 6
你爲什麼不使用的7-Zip [SDK](HTTP:// WWW 3.7 zip.org/sdk.html)? – 2012-04-11 11:08:56