2014-11-27 8 views
0

내 응용 프로그램에 rhino 스크립트를 사용합니다. 다른 환경에서는 작동이 다릅니다. 예를 들어, 오픈 JDK에이 코드는 오라클의 JDK 작동에 반면JDK에 내장 된 것 대신 정확한 rhino 구현을 어떻게 지정할 수 있습니까?

eval("JSON.stringify({id:1})") 

작동하지 않습니다.

이것은 각 JDK에 자체 Rhino 구현이 포함되어 있기 때문에 분명합니다.

<dependency> 
    <groupId>org.mozilla</groupId> 
    <artifactId>rhino</artifactId> 
    <version>1.7R4</version> 
</dependency> 

어떻게이 구현을 사용하여 지정할 수 있습니다

나는 의존성에 다음을 추가?

업데이트 : 나는 직접적으로하지만 javax.script의 API를 통해 코뿔소 전화

new ScriptEngineManager().getEngineByName("JavaScript").eval("JSON.stringify({})") 
+0

"간단한 JDK"란 무엇입니까? – eis

+0

Oracle 사이트에서 다운로드 한 JDK http://www.oracle.com/technetwork/java/javase/downloads/index.html – Boris

+0

아, Oracle JDK. 그래서 응용 프로그램과 함께 rhino 구현을 패키징하고 싶습니까? 당신은 [this one] (http://www.ivanparraga.com/2014/03/16/embedding-mozilla-rhino-and-pass-java-objects-to-javascript/)과 같은 그것에 관한 몇 가지 게시물을 찾고 있었습니까? ? 당신이 그것을 따라하려고한다면 당신의 정확한 문제는 무엇입니까? – eis

답변

0

당신은 재 포장 사용하는 대신 JDK의 구현보다, 패키지 org.mozilla.javascript를 사용하는 사용 javax.script.ScriptEngine의 구현을 필요 sun.org.mozilla.javascript.internal.

de.christophkraemer:rhino-script-engine은 OpenJDK 소스에서 빌린 구현물입니다. 더 details here.