【问题标题】:How to call shell script in java code in eclipse? [duplicate]如何在eclipse中的java代码中调用shell脚本? [复制]
【发布时间】:2013-06-19 13:47:13
【问题描述】:

我无法从我的 java 代码中调用 shell 脚本。 这是我的代码。谁能让我知道我在这里缺少什么。

protected boolean shellExecute() throws InterruptedException {
    try {
        Process p = Runtime.getRuntime().exec("/home/baibhav/try_scripts/javacall.sh");
    } catch (IOException e) {
        e.printStackTrace();
        return false;
    }
    return true;
}

【问题讨论】:

  • 欢迎来到 StackOverflow。请准确告诉我们什么不起作用。有Exception吗?
  • 粘贴到堆栈跟踪中。

标签: java shell


【解决方案1】:

尝试在脚本名称前使用 sh

Process p = Runtime.getRuntime().exec("sh /home/baibhav/try_scripts/javacall.sh");

【讨论】:

    【解决方案2】:

    如果你得到 IO 执行,请检查你的脚本路径

    【讨论】:

      【解决方案3】:

      如果脚本有输出,则需要获取返回的Process'输出并从中读取进程不会阻塞。

      Process p = Runtime.getRuntime().exec("/home/baibhav/try_scripts/javacall.sh");
      InputStream scriptStdout = p.getInputStream();
      // Read from input stream and proecess it.
      
      // In finally block:
      scriptStdout.close();
      

      你没有说你是否抛出了异常或者系统是否只是挂起。如果挂了,可能就是这个原因。

      另外,请考虑改用ProcessBuilder

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-25
        • 2014-07-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多