我试图从java代码中调用ruby脚本。 script.rb文件与java代码位于同一文件夹中。
try
{
Process p = Runtime.getRuntime().exec("ruby script.rb");
}
catch (IOException e)
{
e.printStackTrace();
}
然而,脚本没有被执行。关于可以做什么的任何建议?
答案 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();
}
}