3

Java の ScriptEngineManager から jruby の gem パスを設定することは可能ですか? 問題は、圧縮された jruby インタープリター (jruby-complete.jar) を使用していて、このパッケージをプリインストールされた gem で取得できないことです。そのため、ScriptEngineManager を使用して Java から jruby を実行し、リダイレクトしようとしています。ハードドライブにインストールした宝石へのパス。

例:

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

前もって感謝します

~ エデル・キニョネス

4

1 に答える 1

2

ルビーからプログラムで環境変数 RUBYLIB と GEM_HOME を設定しました。

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

require "library-1.rb"
...
require "library-n.rb"
于 2011-09-09T21:18:03.670 に答える