我写了一个有print语句的ruby类。然后我编写了一个Groovy类,该类调用该ruby类并执行
我尝试过像Process.execute(“ ruby.exe test.rb”)
Ruby代码->
class Test
puts "hello, I am ruby"
end
Groovy代码->
class TestGroovy {
static main(String[] args) {
Process.execute("ruby.exe test.rb")
}
}
我需要以hello的形式获取输出,运行TestGroovy时我是红宝石。
答案 0 :(得分:0)
来自docs:
Groovy提供了一种执行命令行过程的简单方法。只需将命令行写为字符串并调用execute()方法即可。例如,在* nix机器(或装有适当* nix命令的Windows机器)上,您可以执行以下操作:
def process = "ls -l".execute() // <1> println "Found text ${process.text}" // <2>
- 在外部进程中执行ls命令
- 使用命令的输出并获取tex
答案 1 :(得分:0)
您可以使用JSR-223脚本引擎从Groovy或Java代码执行Ruby代码。这是一个示例Groovy脚本:
@Grab('org.jruby:jruby:9.2.5.0')
import javax.script.ScriptEngine
import javax.script.ScriptEngineManager
ScriptEngine engine = new ScriptEngineManager().getEngineByName('jruby')
engine.eval('puts "Hello world!"')
eval()
也接受java.io.Reader
,您可以从文件路径中获取。 https://github.com/jruby/jruby/wiki/RedBridge