Подтвердить что ты не робот

Как я могу начать кодирование с помощью Oracle Nashorn JS Engine и когда он заменит Rhino в OpenJDK?

Я ищу способ начать играть с Oracle New Nashorn JavaScript Engine. Я получил последний OpenJDK 8 (b65), и похоже, что Rhino по-прежнему остается единственным включенным движком script.

Кто-нибудь знает, когда (или в какой сборке) Нашорн заменит Rhino в OpenJDK? Или еще лучше, где я могу получить JDK вместе с ним? Я знаю, что Netbeans уже написал отладчик, чтобы использовать его, просто не уверен, где они получили библиотеки/код, чтобы начать его писать.

У кого-нибудь есть ссылки?

Спасибо.

4b9b3361

Ответ 1

Похоже, пока нет никаких признаков Нашорна на OpenJDK.

Самый последний комментарий от Jim Laskey в октябре 2012 года предлагает Q4 2012:

https://blogs.oracle.com/nashorn/entry/welcome_to_the_nashorn_blog#comment-1351205506968

Я думаю, что пришло время для на 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/