2010-03-17 2 views
0

JRuby를 사용자 정의 응용 프로그램에서 사용하려고하는데 JRubyEngine 객체를로드 할 수없는 것 같습니다. 내 클래스는이 기능적으로 유사한 다음과 같습니다org.apache.bsf.util.BSFEngineImpl을 찾을 수 없으므로 JRubyEngine을로드 할 수 없습니다.

[javac] Compiling 486 source files to /workspace/myProject/build/src 
[javac] /workspace/myProject/src/net/ceilingfish/ScriptEngine.java:31: cannot access org.apache.bsf.util.BSFEngineImpl 
[javac] class file for org.apache.bsf.util.BSFEngineImpl not found 
[javac]  private static ScriptEngine engine = new JRubyEngine(); 
[javac]          ^
[javac] 1 error 

사람이 내가에서이 클래스를 얻을 수있는 위치에 어떤 통찰력을 가지고 있습니까 : 그러나이 불만과 함께 컴파일에 실패

public class ScriptEngine { 

    private static ScriptEngine engine = new JRubyEngine(); 

    public void run(final String script, final Map<String,Object> input) { 
     final Bindings context = engine.createBindings(); 

     context.putAll(input); 

     try { 
      engine.eval(script,context); 
     } catch (ScriptException e) { 
      log.error("Failed to execute script: "+getScript(),e); 
     } 
    } 

} 

? 또는 JRubyEngine 객체를 인스턴스화하는 더 좋은 방법이있는 경우.

답변

0

에서 아파치 BSF를 다운로드 할 수 있습니다 내가 JRubyScriptEngine하지 JRubyEngine을 사용하고 있어야 밝혀졌습니다. 예 :

import com.sun.script.jruby.JRubyScriptEngine; 
    .... other imports 

public class ScriptEngine { 

    private static ScriptEngine engine = new JRubyScriptEngine(); 

    public void run(final String script, final Map<String,Object> input) { 
     final Bindings context = engine.createBindings(); 

     context.putAll(input); 

     try { 
      engine.eval(script,context); 
     } catch (ScriptException e) { 
      log.error("Failed to execute script: "+getScript(),e); 
     } 
    } 

} 
관련 문제