如何从Groovy类调用ruby类并从Groovy类执行它
我写了一个ruby类,它有print语句。然后我编写了一个Groovy类,它调用这个ruby类并执行 我尝试了类似Process.execute(“ruby.exe test.rb”)的方法 Ruby代码--> Groovy代码--> 我需要以hello的形式获得输出,当我运行TestGroovy时我是ruby。来自: Groovy提供了一种执行命令行进程的简单方法。只需将命令行写成字符串并调用execute()方法。例如,在*nix机器(或安装了相应*nix命令的windows机器)上,您可以执行以下操作:如何从Groovy类调用ruby类并从Groovy类执行它,ruby,groovy,Ruby,Groovy,我写了一个ruby类,它有print语句。然后我编写了一个Groovy类,它调用这个ruby类并执行 我尝试了类似Process.execute(“ruby.exe test.rb”)的方法 Ruby代码--> Groovy代码--> 我需要以hello的形式获得输出,当我运行TestGroovy时我是ruby。来自: Groovy提供了一种执行命令行进程的简单方法。只需将命令行写成字符串并调用execute()方法。例如,在*nix机器(或安装了相应*nix命令的windows机器)上,您可以
def process = "ls -l".execute() // <1>
println "Found text ${process.text}" // <2>
def process=“ls-l”.execute()//
println“找到文本${process.text}”//
您可以使用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
。关于如何从Java/Groovy运行Ruby,这里有更多的细节:关于从Groovy执行命令行,有很多问题需要回答。只需搜索。。。
def process = "ls -l".execute() // <1>
println "Found text ${process.text}" // <2>
@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!"')