java - 从 ScriptEngineManager eval 方法设置 gem 路径

标签 java rubygems jruby javascript-engine

是否可以通过 Java 中的 ScriptEngineManager 设置我的 jruby 的 gem 路径?问题是我使用的是压缩的 jruby 解释器 (jruby-complete.jar) 并且不可能使用预安装的 gems 获得这个包,所以我正在尝试做的是使用 ScriptEngineManager 从 Java 运行 jruby 并重定向gem 到我安装在硬盘上的 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());
        }
    }
}

提前致谢

~ Eder Quiñones

最佳答案

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

ENV["RUBYLIB"] = "lib/libs"
ENV["GEM_HOME"] = "lib/gems"

require "library-1.rb"
...
require "library-n.rb"

关于java - 从 ScriptEngineManager eval 方法设置 gem 路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7288452/

相关文章:

java - 圆长从 1004L 到 1000L(或 1006L 到 1010L)

java - 避免 NullPointerException

ruby-on-rails - rails 1.9.3 `to_specs' : Could not find railties Gem:load error

ruby-on-rails - bundle 更新卡在 "Fetching source index for http://rubygems.org/"

tomcat - 如何在 Tomcat 中的 Rails 初始化期间创建全局命名空间的 CONSTANT?

java - 堆叠方 block /盒子

java - 在绘制矩形和徒手绘制之间切换

ruby - config.ru if 生产语句

java - 如何从 Java 以编程方式使用 jruby-complete?

tomcat - 错误页面(500.html、404.html 等)未在 rails/jruby 环境中呈现