【问题标题】:Setting gem path from ScriptEngineManager eval method从 ScriptEngineManager eval 方法设置 gem 路径
【发布时间】:2011-09-02 19:37:18
【问题描述】:

是否可以从 Java 中的 ScriptEngineManager 设置我的 jruby 的 gem 路径?问题是我使用的是压缩的 jruby 解释器(jruby-complete.jar),并且无法使用预安装的 gem 获取这个包,所以我正在尝试使用 ScriptEngineManager 从 Java 运行 jruby 并重定向gem 的路径到我在我的硬盘上安装的那些。

例子:

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());
        }
    }
}

提前致谢

~埃德奎尼翁

【问题讨论】:

    标签: java rubygems jruby javascript-engine


    【解决方案1】:

    我刚刚从 ruby​​ 以编程方式设置了环境变量 RUBYLIB 和 GEM_HOME:

    ENV["RUBYLIB"] = "lib/libs"
    ENV["GEM_HOME"] = "lib/gems"
    
    require "library-1.rb"
    ...
    require "library-n.rb"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-15
      • 1970-01-01
      • 1970-01-01
      • 2018-08-09
      • 2020-02-14
      • 2015-11-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多