Java 从ScriptEngineManager eval方法设置gem路径
可以从Java中的ScriptEngineManager设置jruby的gem路径吗?问题是,我使用的是一个压缩的jruby解释器(jruby complete.jar),不可能在这个包中预装gems,所以我尝试使用ScriptEngineManager从Java运行jruby,并将gem的路径重定向到我在硬盘上安装的路径 例如:Java 从ScriptEngineManager eval方法设置gem路径,java,rubygems,jruby,javascript-engine,Java,Rubygems,Jruby,Javascript Engine,可以从Java中的ScriptEngineManager设置jruby的gem路径吗?问题是,我使用的是一个压缩的jruby解释器(jruby complete.jar),不可能在这个包中预装gems,所以我尝试使用ScriptEngineManager从Java运行jruby,并将gem的路径重定向到我在硬盘上安装的路径 例如: public class Main { public static void main(String[] args) { StringBuff
public class Main {
public static void main(String[] args) {
StringBuffer jruby = null;
ScriptEngine runtime = null;
try {
runtime = new ScriptEngineManager().getEngineByName("jruby");
jruby = new StringBuffer();
jruby.append("require 'ruby/Libraries.rb'");
jruby.append("\r\n");
jruby.append("if __FILE__ == $0");
jruby.append("\r\n");
jruby.append("\tzkan = ZKANWritter.new(\"");
jruby.append("G:/path/output.xls");
jruby.append("\",\"");
jruby.append("G:/path/kanban.txt");
jruby.append("\",\"//path/LT CUU.tab\")");
jruby.append("\r\n");
jruby.append("\tzkan.write(2)");
jruby.append("\r\n");
jruby.append("end");
runtime.eval(jruby.toString());
} catch (Exception ex) {
System.out.println("Error: " + ex.getMessage());
}
}
}
提前谢谢
~Eder Quiñones我刚刚从ruby编程设置了环境变量RUBYLIB和GEM_HOME:
ENV["RUBYLIB"] = "lib/libs"
ENV["GEM_HOME"] = "lib/gems"
require "library-1.rb"
...
require "library-n.rb"