从java代码调用ruby脚本

时间:2014-07-07 10:52:17

标签: java ruby

我试图从java代码中调用ruby脚本。 script.rb文件与java代码位于同一文件夹中。

try 
{
      Process p = Runtime.getRuntime().exec("ruby script.rb");
} 
catch (IOException e)
{
  e.printStackTrace();
}

然而,脚本没有被执行。关于可以做什么的任何建议?

2 个答案:

答案 0 :(得分:2)

import java.io.*;

public class RubyCall {
    public static void main(String[] args) {
        try {
            Process process = Runtime.getRuntime().exec("ruby script.rb");
            process.waitFor();

            BufferedReader processIn = new BufferedReader(
                    new InputStreamReader(process.getInputStream()));

            String line;
            while ((line = processIn.readLine()) != null) {
                System.out.println(line);
            } 
        } 
        catch (Exception e) {
            e.printStackTrace();
        }
    }
}

我想你只是忘了过程输出不是系统输出。使用此代码,您将看到标准输出上打印的过程输出,并查看是否有任何错误。

答案 1 :(得分:1)

尝试以下代码。等待进程执行并检查ruby文件中写入的逻辑。

public static void main(String argv[]) {
    try {

      Process p = Runtime.getRuntime().exec("ruby script.rb");
      p.waitFor();
      System.out.println(p.exitValue());
    }
    catch (Exception err) {
      err.printStackTrace();
    }
  }