java - 在 OSX 中运行 CMD 等效项?

标签 java macos shell scripting sh

我使用此代码让我的 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/

相关文章:

java - 多个应用程序之间共享事务

macos - Node.js 在 mac osx 10.8.4 上安装 Canvas 失败 : src/Canvas. h..... fatal error : v8. h 文件未找到

macos - 如何使用 cfconfig 目录映射在命令框中设置物理路径

linux - 询问收件人、主题和正文的 Bash 邮件脚本

java - 运行时为 "No suitable driver",但不在 IDE 中

java - 配置方法执行的顺序

java - Spring data jpa 按嵌套对象集合大小排序

git - 在 git jenkins 中找不到存储库

mysql - 使用 shell 脚本从一行中获取多个变量

xml - Bash 脚本查找包含特定数字范围的文件名