我正在尝试使用 Java 运行 Ruby 代码。这段代码给了我一个空结果。 (结果:空) 任何人都可以帮我找出错误吗?
Java:
public static void callRuby(){
ScriptEngine jruby = new ScriptEngineManager().getEngineByName("jruby");
//process a ruby file
try {
jruby.eval(new BufferedReader(new FileReader("rubyTest.rb")));
jruby.put("a", "2");
jruby.put("b", "3");
System.out.println("result: " +jruby.get("res"));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ScriptException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
rubyTest.rb
def addition(a,b)
puts a
puts b
res = a + b
end
最佳答案
您的rubyTest.rb
脚本定义了一个函数addition(a, b)
,但是您在哪里调用该函数呢?
这定义了解释器中的函数:
jruby.eval(new BufferedReader(new FileReader("rubyTest.rb")));
然后你分配顶级变量a
和b
,然后你询问res
的值,但我没有查看程序调用 addition(a,b)
函数的任何位置。
关于java - 如何在 Java 中执行 Ruby 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28195525/