Как я могу начать кодирование с движком Oracle Nashorn JS и когда он заменит Rhino в OpenJDK?
Я ищу способ начать играть с новым движком Nashorn JavaScript Oracle. У меня был последний OpenJDK 8 (b65), и кажется, что Rhino по-прежнему является единственным включенным движком скриптов.
кто-нибудь знает, когда (или в какой сборке) Nashorn заменит Rhino в OpenJDK? Или даже лучше, где я могу получить JDK с ним уже включен? Я знаю, что Netbeans уже написал отладчик для его использования, просто не уверен, где они получили библиотеки/код для начала записи он.
У кого-нибудь есть ссылки?
спасибо.
4 ответов
похоже, что на OpenJDK нет никаких признаков Nashorn.
самый последний комментарий от Джима ласки в октябре 2012 года предлагает Q4 2012:
https://blogs.oracle.com/nashorn/entry/welcome_to_the_nashorn_blog#comment-1351205506968
Я думаю, что пришло время для Насхорн тег так!
Обновление 1 Декабря 2012:
похоже, что в конце декабря 2012 OpenJDK может иметь его https://blogs.oracle.com/nashorn/entry/request_for_project_nashorn_open
Обновление 10 Марта 2013:
@Seth правильно, что 1.7 выпуск 3 предварительная версия не Насхорн. Моя ошибка!
JDK 8 b68 включает в себя еще не слили Насхорн~jdk8 филиала.
README для этой ветви говорит:
РЕПО Nashorn находится в процессе миграции на OpenJDK и как таковой неполный в нескольких областях. Система сборки не полностью интегрирована. Когда закончите, Nashorn будет установлено в свое правильное положение в JRE. После интеграции правильная версия JDK будет обернута вокруг Нэшорн. Тем временем убедитесь, что вы используете JDK8 b68 или более позднюю версию.
Если вы извлекаете Насхорн~jdk8 из источника вы можете построить Насхорн.Джар
cd nashorn~jdk8/nashorn/make
ant clean; ant
вы можете запросить "нашорн" двигатель от javax.скрипт.Вызов scriptenginemanager в недавней сборке JDK 1.8:
jrunscript -cp ./nashorn.jar -l "nashorn" -e "println(engine.factory.getParameter(
javax.script.ScriptEngine.ENGINE))"
> Oracle Nashorn
или Насхорн.Джар в путь:
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("nashorn");
Обновление 19 Марта, 2014:
обновление от @ncasas; JDK 8 вышел и Nashorn является двигателем JS по умолчанию.
Я сделал еще несколько раскопок, и Вы можете заставить Nashorn работать с 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 set перечислит носорога и Нашорна, без него вы увидите только носорога.
установите JDK8 и создайте псевдоним для Jjs вашего JDK (интерпретатор Nashorn), например, если вы создадите файл с именем test.JS, вы можете запустить программу с:
$ jjs test.js
Mac OS = псевдоним jjs= ' / Library / Java/JavaVirtualMachines / jdk1.8.0.с JDK/содержание/домой/среда JRE/bin и/Джей джеи’
Windows = определите переменную среды под названием " JAVA8_HOME’ и укажите папку jdk8, затем вы можете вызвать jjs, выполнив эту команду:
> “%JAVA8_HOME%\jre\bin\jjs” test.js
Я смотрел, как использовать его в последнее время, и в настоящее время я думаю, что единственный способ начать использовать его-это создать OpenJDK из источника, поскольку он не находится в текущей версии с 7 февраля.
Я предполагаю, что это будет в предварительной версии разработчика, выпущенной позже на этой неделе (21/02/2013).