我使用此代码让我的 Java 程序打开一个(可见的)CMD 窗口:
try {
String line;
Process p = Runtime.getRuntime().exec("cmd /C start \"Render\" \"" + myPath + "\\punchRender.cmd\"");
BufferedReader input =
new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((line = input.readLine()) != null) {
System.out.println(line);
jLabel7.setText(line);
}
input.close();
} catch (Exception err) {
err.printStackTrace();
}
我一直在尝试使用 OSX 终端做同样的事情,这就是我现在所处的位置:
try {
String line;
Process p = Runtime.getRuntime().exec("sh " + myPath + "/punchRender.sh");
BufferedReader input =
new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((line = input.readLine()) != null) {
System.out.println(line);
jLabel7.setText(line);
}
input.close();
} catch (Exception err) {
err.printStackTrace();
}
到目前为止,还没有运气:(有什么建议吗?.sh 文件甚至没有运行...
最佳答案
我只是确保您的 shell 脚本具有执行位,然后传入 shell 脚本文件名。
进程 p = Runtime.getRuntime().exec(myPath + "/punchRender.sh")
编辑:
我不知道 Java 是否有办法为 Unix/Linux 设置文件权限,以设置 eXecute 位或如何转义引号。但它会是这样的:
进程 chmod = Runtime.getRuntime().exec("chmod u+x\""+ myPath + "/punchRenderer.sh\"")
关于java - 在 OSX 中运行 CMD 等效项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/673498/