У меня есть проект для завершения, и я не могу использовать javax.script, поэтому могу ли я использовать Nashorn, но не использовать javax.script?Используйте Nashorn, но не javax.script
ответ
Вы можете использовать инструмент командной строки «jjs» в jdk/bin для оценки скриптов. Этот инструмент может оценивать скрипты из файлов/URL-адресов или может также работать в интерактивном режиме. Инструмент не использует javax.script API - но использует Nashorn напрямую
Вы можете использовать Nashorn API напрямую, например. вы можете начать с класса jdk.nashorn.api.scripting.NashornScriptEngineFactory
, но многие API неявно полагаются на пакет javax.script
позже. Я не уверен, почему у вас есть ограничение; javax.script
стандартный пакет JDK, это в каждое время выполнения Java, так как вокруг Java 1.5 или 6.
Тем не менее, прямое использование API позволяет получить индивидуальные ScriptEngine
с, потому что NashornScriptEngineFactory
имеют некоторые перегрузки для метода getScriptEngine()
, которые позволяют вам pass jjs
аргументы командной строки, пользовательский загрузчик классов для использования движком и т. д.
Еще одна важная вещь, связанная с тем, что использование API Nashorn напрямую вас закупает, заключается в том, что вы будете знать, что вы определенно получаете двигатель Nashorn, что-то, что вы не можете быть уверены в том, что просто попросите JS-двигатель от javax.script
.
Не так ясный вопрос, не могли бы вы немного подробнее? Вы используете последнюю версию java? вы импортировали JDK или JRE в свою среду IDE? что вы имеете в виду, используя Nashorn, но не используете javax.script? Вы читали простой учебник, например [this] (http://winterbe.com/posts/2014/04/05/java8-nashorn-tutorial/) – AntJavaDev
Конечно, вы можете использовать Nashorn. Используйте jjs из командной строки. В противном случае используйте javax.script.ScriptEngine из кода. Мне было бы интересно узнать, почему вы думаете, что не можете использовать javax.script. Это часть среды выполнения Java, так же, как и другой класс в Java 8. Возможно [проблема X-Y] (http://xyproblem.info/). – ManoDestra