Java API 8로 Nashorn을 사용하고 있습니다. Java 패키지를 호출 할 수없는 자바 스크립트 실행을 보안하고 싶습니다.ScriptEngineManager 메소드 getEngineByName ("nashorn")을 사용하여 인수를 추가하는 방법은 무엇입니까?
은 다음과 같이 할 수있다 :
NashornScriptEngineFactory factory = new NashornScriptEngineFactory();
ScriptEngine engine = factory.getScriptEngine("-strict", "--no-java", "--no-syntax-extensions");
그러나, NashornScriptEngineFactory
를 사용하여 직접적으로 정말 좋은하지 않습니다.
좋은 방법은 ScriptEngineManager
을 사용하는 것입니다. NashornScriptEngineFactory
은 ScriptEngineManager
에 의해 사용되어 ScriptEngine
의 인스턴스를 만드는 공장입니다. 그것은이 documentation에 설명되어 있습니다 :
이 패키지는 Nashorn를 사용하는 선호하는 방법입니다 javax.script의 통합을 제공합니다. 당신은 통상 Nashorn 스크립트 엔진의 인스턴스를 얻기 위해이 작업을 수행합니다
import javax.script.*; ... ScriptEngine nashornEngine = new ScriptEngineManager().getEngineByName("Nashorn");
나는 "-strict", "--no-java", "--no-syntax-extensions"
같은 몇 가지 추가 인수를 제공 할 수있는 능력 ScriptEngineManager
를 사용하여 ScriptEngine
을 만들 수있는 솔루션을 발견하지 않았다.
누구든지이 문제에 도움이 될 수 있습니까? 미리 감사드립니다.
내가 -Dnashorn.args =를 사용합니다 "- 엄격한 --no-자바 --no-구문 확장". 나는 자바 스크립트 API를 계속 사용하는 것을 선호한다. 어느 날 내가 사용하는 스크립트 언어를 변경하더라도 자바 코드를 변경하는 것보다 구성을 변경하는 것이 더 쉽습니다. 당신의 도움을 주셔서 감사합니다. –