Avatar.js и Project Avatar
В контексте Java 8 и Nashorn я регулярно вижу два проекта.
Какое отношение имеют эти проекты?
Avatar.js имеет очень мало документации. Насколько я понял, это дает возможность выполнять приложения узлов на JVM.
Проект Avatar, похоже, основан на Avatar.js. Тем не менее, кажется, что целью является предоставление альтернативной Web-Framework для Java EE 7. Можно ли также выполнять программы узлов (например, grunt) с Project Avatar?
3 ответа
Обновление: Проект Аватар был официально остановлен 2015-02-12.
Avatar.js является версией с открытым исходным кодом того, что неофициально называлось 'node.jar' (см. Этот пост из списка рассылки avatar-js). Другими словами, это NodeJS-совместимый API, работающий на Nashorn. Проект Avatar, по-видимому, является ответом Oracle на API-интерфейс NodeJS, предлагая альтернативную платформу, которая также обеспечивает совместимость с API-интерфейсом NodeJS и экосистемой через Avatar.js.
Следовательно, Project Avatar построен не на Avatar.js, а на том, что "Avatar.js является одним из компонентов Project Avatar. Nashorn - это механизм JavaScript, используемый для запуска обоих". (опять же из этого поста).
На домашней странице Avatar.js в настоящее время есть список известных модулей, в том числе "grunt". Похоже, что Project Avatar в настоящее время включает в себя сборку Avatar.js как "avatar-js.jar", как указано в текущем последнем коммите, хотя ему уже 4 месяца. Поэтому я думаю, что ответ таков: да, текущая сборка Project Avatar позволит вам запускать Node-совместимые модули.
Как вы указали, обеим этим инициативам не хватает документации, и они находятся в зачаточном состоянии. Время и участие сообщества покажут, где они подходят лучше всего.
Действительно, Avatar.js включен в Project Avatar. Просматривая файлы Maven POM Project Avatar, я обнаружил, что существует бинарный дистрибутив Avatar.js, доступный через репозиторий java.net Maven.
Основываясь на этом открытии, я написал сообщение в блоге о том, как запускать простые приложения Node.js с Avatar.js здесь: Запуск приложений Node.js на JVM с Nashorn и Java 8
Шаги для OSX повторяются здесь:
- Загрузите avatar-js.jar с сайта java.net Maven Repo. Текущая версия находится здесь: https://maven.java.net/content/repositories/public/com/oracle/avatar-js/0.10.25-SNAPSHOT/ Файл примера: avatar-js-0.10.25-20140313.063039-43. яс
- Загрузите нативную библиотеку avatar-js.dylib с сайта java.net Maven Repo. Текущая версия находится здесь: https://maven.java.net/content/repositories/public/com/oracle/libavatar-js-macosx-x64/0.10.25-SNAPSHOT/
Файл примера:libavatar-js-macosx-x64-0.10.25-20140312.062209-35.dylib
Для Linux вы должны загрузить соответствующий файл.so из../libavatar-js-linux-x64/0.10.25-SNAPSHOT/
Для Windows вы должны загрузить соответствующий файл.dll из../libavatar-js-win-x64/0.10.25-SNAPSHOT/ - Переименуйте нативную библиотеку в avatar-js.dylib, переименуйте jar в avatar-js.jar и поместите обе в каталог с именем dist.
- Создайте простое приложение Node.js в файле с именем app.js.
- Запустите команду:
java -Djava.library.path=dist -jar dist/avatar-js.jar app.js
Project Avatar действительно находится поверх Avatar.js; код интегрирован в нашу сборку с использованием Maven. (Баночка, которую вы нашли, Иоганн, была старая, потому что мы ее больше не используем - я просто взорвал ее, спасибо).
И да, мы знаем, что нашим документам нужно больше работать. На данный момент мы сосредоточены на конкретизации серверной среды JavaScript. Этот сервисный уровень предоставляет среду выполнения, настроенную для простого создания конечных точек REST, WebSocket и Server-Sent Event.