2011-09-02 1 views
2

Java의 ScriptEngineManager에서 jruby의 gem 경로를 설정할 수 있습니까? 문제는 내가 압축 된 jruby 인터프리터 (jruby-complete.jar)를 사용하고 있으며 미리 설치된 보석으로이 패키지를 가져올 수 없다는 것입니다. 그래서 내가하려는 것은 ScriptEngineManager를 사용하여 Java에서 jruby를 실행하고 리디렉션하는 것입니다. 내 하드 드라이브에 설치 한 보석 경로.ScriptEngineManager eval 메서드에서 보석 경로 설정

예 : 사전에

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

감사

~ 에더 퀴논

답변

2

난 그냥 변수 루비에서 & GEM_HOME 프로그램 RUBYLIB 환경 설정 한 :

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

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