Mac osx で外部 jar を実行しようとしています。その出力が必要で、プロパティを設定します
私のコード:
ProcessBuilder pb = new ProcessBuilder();
System.setProperty("user.home", file1);
Console.Out(System.getProperty("user.home"));
ArrayList<String> args = new ArrayList<String>();
args.add("java");
args.add("-jar");
args.add(jarFile);
pb.command(args);
Process p = pb.start();
System.setProperty("user.home", ModMaker.Root + "/MCP/jars");
BufferedReader bf = new BufferedReader(new InputStreamReader(p
.getInputStream()));
while(bf.readLine() != null)
;
if(!new File(somedir).exists()) {
int result = Joptionpane.showConfirmDialog(Gui.getFrame(),
"Program isn't installed properly!\n\nRun It again?",
"Not installed!", JOptionPane.YES_OPTION,
JOptionPane.WARNING_MESSAGE);
if(result == 0) {
runAgain();
}
}
しかし、これを実行すると、bf.readLine はすぐに null になり、停止したと表示されます。しかし、そうではありません。また、プロパティは外部プロセスでは変更されません。
編集:これをWindowsで実行すると、正常に動作します!