ファイルを解凍するために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を使用していますが、他に何が欠けている可能性がありますか?
ご協力いただきありがとうございます!
編集:
2台のコンピューターの違いを見つけました。動作するものにはjava7がインストールされていますが、問題のあるものにはjava6がインストールされています