Как я могу начать кодирование с движком 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).

источник:http://openjdk.java.net/projects/jdk8/