Как я могу начать кодирование с помощью Oracle Nashorn JS Engine и когда он заменит Rhino в OpenJDK?
Я ищу способ начать играть с Oracle New Nashorn JavaScript Engine. Я получил последний OpenJDK 8 (b65), и похоже, что Rhino по-прежнему остается единственным включенным движком script.
Кто-нибудь знает, когда (или в какой сборке) Нашорн заменит Rhino в OpenJDK? Или еще лучше, где я могу получить JDK вместе с ним? Я знаю, что Netbeans уже написал отладчик, чтобы использовать его, просто не уверен, где они получили библиотеки/код, чтобы начать его писать.
У кого-нибудь есть ссылки?
Спасибо.
Ответы
Ответ 1
Похоже, пока нет никаких признаков Нашорна на OpenJDK.
Самый последний комментарий от Jim Laskey в октябре 2012 года предлагает Q4 2012:
https://blogs.oracle.com/nashorn/entry/welcome_to_the_nashorn_blog#comment-1351205506968
Я думаю, что пришло время для nashorn на SO!
Обновление 1 декабря 2012 года:
Похоже, что в конце декабря 2012 года OpenJDK может иметь это https://blogs.oracle.com/nashorn/entry/request_for_project_nashorn_open
Обновление 10 марта 2013 года:
@Seth правильно, что 1.7 release 3 PRERELEASE не является Нашорном. Моя ошибка!
JDK 8 b68 включает в себя еще не объединенный nashorn ~ jdk8.
README для этой ветки говорит:
Репо Nashorn находится в процессе перехода на OpenJDK и как таковое неполным в нескольких областях. Система сборки не полностью интегрирована. Когда закончится, Нашорн будет установленный в надлежащем месте в JRE. После интегрирования правильная версия JDK будет обернута вокруг Nashorn. В то же время убедитесь, что вы используете JDK8 b68 или более поздней версии.
Если вы закажете nashorn ~ jdk8 из источника, вы можете построить nashorn.jar
cd nashorn~jdk8/nashorn/make
ant clean; ant
Вы можете запросить движок "nashorn" от javax.script.ScriptEngineManager в недавней сборке jdk 1.8:
jrunscript -cp ./nashorn.jar -l "nashorn" -e "println(engine.factory.getParameter(
javax.script.ScriptEngine.ENGINE))"
> Oracle Nashorn
или nashorn.jar в пути:
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("nashorn");
Обновление от 19 марта 2014 года:
Обновление от @ncasas; JDK 8 отсутствует, а Nashorn - двигатель JS по умолчанию.
Ответ 2
Я сделал еще несколько копаний, и вы можете заставить Нашорна работать с JDK7, используя задний порт, расположенный здесь:
https://bitbucket.org/ramonza/nashorn-backport
Оформите этот репозиторий и попытайтесь его построить с помощью ant -f make/build.xml
, как описано на странице BitBucket
Примените патч, указанный в разделе проблем здесь, если вы получите неудачную сборку из-за dynalink (я предполагаю, что он скоро будет заархивирован в основной репозиторий разработчиком).
При его создании вы должны получить файл nashorn.jar в папке dist вашего клонированного репозитория.
Теперь вам нужно добавить эту банку в свой bootclasspath, используя опцию VM, подобную этой:
-Xbootclasspath/a:C:/nashorn-backport/dist/nashorn.jar
И теперь вы сможете использовать nashorn. Чтобы убедиться, что здесь была программа быстрого тестирования, которую я написал, она будет перечислять доступные двигательные заводы:
import javax.script.*;
public class NashornTest {
public static void main(String args[]) {
ScriptEngineManager manager = new ScriptEngineManager();
for (ScriptEngineFactory f : manager.getEngineFactories()) {
printBasicInfo(f);
System.out.println();
}
}
public static void printBasicInfo(ScriptEngineFactory factory) {
System.out.println("engine name=" + factory.getEngineName());
System.out.println("engine version=" + factory.getEngineVersion());
System.out.println("language name=" + factory.getLanguageName());
System.out.println("extensions=" + factory.getExtensions());
System.out.println("language version=" + factory.getLanguageVersion());
System.out.println("names=" + factory.getNames());
System.out.println("mime types=" + factory.getMimeTypes());
}
}
Запуск с набором bootclasspath будет содержать список Rhino и Nashorn, без него вы увидите только Rhino.
Ответ 3
Установите JDK8 и создайте псевдоним для JDK jjs (Nashorn Interpreter), например, если вы создаете файл с именем test.js, вы можете запустить программу с помощью
$ jjs test.js
Mac OS = alias jjs =/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Содержание/Главная/jre/bin/jjs
Windows = Определите переменную среды с именем "JAVA8_HOME" и укажите на свою папку jdk8, затем вы можете вызвать jjs, выполнив следующую команду:
> "%JAVA8_HOME%\jre\bin\jjs" test.js
Ответ 4
Я смотрел, как использовать его в последнее время, и сейчас я думаю, что единственный способ начать использовать его - это если вы создаете OpenJDK из исходного кода, поскольку он не находится в текущей версии с 7 февраля.
Я предполагаю, что это будет в версии предварительного просмотра разработчика, выпущенной позже на этой неделе, хотя (21/02/2013).
Источник: http://openjdk.java.net/projects/jdk8/