2016-12-19 1 views
0

Java 프로그램을 사용하여 solnp를 실행하려고합니다. 이 작동하는지 테스트하려면 benchmarkids() 함수를 실행하려고합니다. 그러나 패키지에 대한 참조를 해결할 수는 없습니다. 내가 http://packages.renjin.org/package/org.renjin.cran/Rsolnp/에서 Rsolnp 패키지를 확인했고, 내가 말할 수있는 한, 그것이 renjin에로드 될 수 있다는 것을 알았다.Renjin을 사용하는 Java의 Rsolnp

나는 메이븐 필요한 패키지를 추가 한 : 나는 내 프로젝트에 직접 패키지를 추가하려고했습니다

<dependency> 
    <groupId>org.renjin.cran</groupId> 
    <artifactId>Rsolnp</artifactId> 
    <version>1.16-b28</version> 
</dependency> 

(I 이클립스 네온을 사용하고 있습니다)를 여전히 작동하지 않았다.

오류 내가 갖는 :

org.renjin.eval.EvalException: Could not load package rsolnp; tried org.renjin.bioconductor:rsolnp, org.renjin.cran:rsolnp 
    at org.renjin.primitives.packaging.NamespaceRegistry.getNamespace(NamespaceRegistry.java:160) 
    at org.renjin.primitives.packaging.NamespaceRegistry.getNamespace(NamespaceRegistry.java:115) 
    at org.renjin.primitives.packaging.Packages.library(Packages.java:41) 
    at org.renjin.primitives.R$primitive$library.doApply(R$primitive$library.java:73) 
    at org.renjin.primitives.R$primitive$library.apply(R$primitive$library.java:34) 
    at org.renjin.primitives.special.InternalFunction.apply(InternalFunction.java:45) 
    at org.renjin.eval.Context.evaluateCall(Context.java:302) 
    at org.renjin.eval.Context.evaluate(Context.java:222) 
    at org.renjin.primitives.special.BeginFunction.apply(BeginFunction.java:38) 
    at org.renjin.eval.Context.evaluateCall(Context.java:302) 
    at org.renjin.eval.Context.evaluate(Context.java:222) 
    at org.renjin.eval.Context.evaluate(Context.java:163) 
    at org.renjin.sexp.Closure.doApply(Closure.java:83) 
    at org.renjin.eval.ClosureDispatcher.apply(ClosureDispatcher.java:73) 
    at org.renjin.eval.ClosureDispatcher.applyClosure(ClosureDispatcher.java:58) 
    at org.renjin.sexp.Closure.apply(Closure.java:78) 
    at org.renjin.eval.Context.evaluateCall(Context.java:302) 
    at org.renjin.eval.Context.evaluate(Context.java:222) 
    at org.renjin.eval.Context.evaluateExpressionVector(Context.java:285) 
    at org.renjin.eval.Context.evaluate(Context.java:220) 
    at org.renjin.script.RenjinScriptEngine.eval(RenjinScriptEngine.java:168) 
    at org.renjin.script.RenjinScriptEngine.eval(RenjinScriptEngine.java:127) 
    at test.java.RsolnpTest.testRsolnp(RsolnpTest.java:55) 

그리고 마지막으로, 코드 내가 전화하려고 해요 : R의

import javax.script.*; 
import org.renjin.script.*; 

// some other tests to see if 10 * 2 in R works. 

public void testRsolnp() 
{ 
    RenjinScriptEngineFactory factory = new RenjinScriptEngineFactory(); 
    ScriptEngine engine = factory.getScriptEngine(); 
    try 
    { 
     engine.eval("library(rsolnp); benchmarkids();"); 

    } 
    catch (ScriptException e) 
    { 
     e.printStackTrace(); 
    } 

    // testing code. 
} 

답변

4

패키지 이름은 대소 문자를 구분합니다. 시도 : engine.eval("library(Rsolnp); benchmarkids();");

관련 문제