Java 程序中直接执行 Ruby 脚本 (JRuby),rubyjruby,TempConverte
分享于 点击 3671 次 点评:171
Java 程序中直接执行 Ruby 脚本 (JRuby),rubyjruby,TempConverte
TempConverter.rb
class TempConverter
def c2f(degrees)
degrees*9.0/5.0+32
end
def f2c(degrees)
(degrees-32)*5.0/9.0
end
end
def getTempConverter
TempConverter.new
end
import java.io.BufferedReader;import java.io.FileReader;import javax.script.Invocable;import javax.script.ScriptEngine;import javax.script.ScriptEngineManager;public class MainClass { public static void main(String[] args) throws Exception { ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("jruby"); engine.eval(new BufferedReader(new FileReader("r.rb"))); Invocable invocable = (Invocable) engine; Object tempconverter = invocable.invokeFunction("getTempConverter"); double degreesCelsius = (Double) invocable.invokeMethod(tempconverter, "f2c", 98.6); System.out.println(degreesCelsius); double degreesFahrenheit = (Double) invocable.invokeMethod(tempconverter, "c2f",100.0); System.out.println(degreesFahrenheit); }}//该片段来自于http://byrx.net
用户点评