2016-08-01 2 views
0

프로젝트를 완료해야하고 javax.script를 사용할 수 없으므로 Nashorn을 사용할 수 있지만 javax.script는 사용할 수 없습니까?Nashorn을 사용하지만 javax.script는 사용하지 않음

+0

질문이 명확하지 않으므로 좀 더 자세히 설명해 주시겠습니까? 최신 자바 버전을 사용하고 있습니까? IDE에 JDK 또는 JRE를 가져 왔습니까? Nashorn을 사용하지만 javax.script를 사용하지 않는다는 것은 무엇을 의미합니까? [this] (http://winterbe.com/posts/2014/04/05/java8-nashorn-tutorial/)와 같은 간단한 튜토리얼을 읽었습니까? – AntJavaDev

+0

물론 Nashorn을 사용할 수 있습니다. 명령 행에서 jj를 사용하십시오. 그렇지 않으면 코드에서 javax.script.ScriptEngine을 사용하십시오. javax.script를 사용할 수 없다고 생각하는 이유가 궁금 할 것입니다. Java 런타임의 일부이며 Java 8의 다른 클래스와 동일합니다. [X-Y 문제점] (http://xyproblem.info/). – ManoDestra

답변

1

jdk/bin의 "jjs"명령 줄 도구를 사용하여 스크립트를 평가할 수 있습니다. 이 도구는 파일/URL에서 스크립트를 평가할 수도 있고 대화 형 모드로 작업 할 수도 있습니다. 이 도구는 javax.script API를 사용하지 않지만 Nashorn을 직접 사용합니다.

1

예 : Nashorn API을 직접 사용할 수 있습니다. jdk.nashorn.api.scripting.NashornScriptEngineFactory 클래스에서 시작할 수 있지만 많은 API는 나중에 javax.script 패키지를 암시 적으로 사용합니다. 나는 왜 당신이 한계를 가지고 있는지 모르겠다. NashornScriptEngineFactory는 당신을 허용 getScriptEngine() 방법에 대한 몇 가지 오버로드를 가지고 있기 때문에 javax.script, 그것은 직접 API 사용하면 ScriptEngine의 사용자 정의받을 수 있습니다 자바 1.5의 주위에 또는 상기

6. 이후 모든 Java 실행에있어, 표준 JDK 패키지 jjs 명령 줄 인수, 엔진에서 사용할 사용자 정의 클래스 로더 등을 전달합니다.

Nashorn API를 직접 사용하는 또 다른 사소한 일은 Nashorn 엔진을 확실히 얻고 있다는 것입니다. 단지 javax.script에서 JS 엔진을 요청한 경우 확실하지 않을 수 있습니다.

관련 문제