Java 在(J)Ruby代码中安装gems
我正在使用JRuby和Cucumber并正在寻找一种跑步方式Java 在(J)Ruby代码中安装gems,java,ruby,jruby,Java,Ruby,Jruby,我正在使用JRuby和Cucumber并正在寻找一种跑步方式 jruby -S gem update --system jruby -S gem install cucumber 从Java内部。再多的谷歌搜索也没有让我找到解决这个问题的方法。基本上我希望能做这样的事情 ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine jRubyEngine = manager.getEngineByName("
jruby -S gem update --system
jruby -S gem install cucumber
从Java内部。再多的谷歌搜索也没有让我找到解决这个问题的方法。基本上我希望能做这样的事情
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine jRubyEngine = manager.getEngineByName("jruby");
: // some unknown code here
jRubeEngine.eval("call gems install/update from inside JRuby")
有没有办法做到这一点?RubyGems只是一个Ruby库。
gem
命令只是库的一个薄包装。您可以使用命令执行的所有操作,都可以使用库执行
我从来没有实际使用过这个库,但我想你想看的是,代码应该是这样的(完全未经测试,只是从我的代码中抽出,你知道吗):
如果有人偶然发现这个问题,我最近在这里创建了一个屏幕,可能会有所帮助:。我相信jrubycomplete附带了一个gem命令版本,您可以从java中使用它。例如,您可以像这样安装sass gem:
java-jar jruby-complete-1.6.7.jar-S gem install-i./sass gems sass--no-rdoc--no-ri
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine jRubyEngine = manager.getEngineByName("jruby");
String s = "
require 'rubygems'
require 'rubygems/dependency_installer'
Gem::DependencyInstaller.new.install('cucumber')
";
jRubyEngine.eval(s);