我正在尝试在 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 立即为空,它说它已停止。但它不是。并且属性在外部过程中没有改变。
编辑:当我在 Windows 中运行它时它工作正常!