Есть ли способ выполнить простые выражения JavaScript в Java 21 без установки вручную?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Есть ли способ выполнить простые выражения JavaScript в Java 21 без установки вручную?

Сообщение Anonymous »

У меня установлена ​​21 версия и, насколько я понимаю, я больше не могу использовать движок Nashorn, но, возможно, мне доступен GraalVM?
Я установил все необходимые зависимости :

Код: Выделить всё

org.graalvm.js
js
21.1.0


org.graalvm.js
js-scriptengine
21.1.0

Вот простой пример, который я пытаюсь выполнить:

Код: Выделить всё

public static void main(String[] args) throws ScriptException {
try (Context context = Context.newBuilder("js")
.allowAllAccess(true)
.build()) {
// Evaluate JavaScript code
String jsCode = "console.log('Hello, GraalVM!');";
context.eval("js", jsCode);
} catch (Exception e) {
throw new ScriptException("Script execution failed: " + e.getMessage());
}
}
Однако я получаю сообщение об ошибке:

Исключение в потоке «основной» javax.script.ScriptException: Scriptне удалось выполнить: язык с идентификатором «js» не установлен. Установленные
языки: []. в org.example.Main.main(Main.java:23)

Я также пробовал что-то вроде этого:
< pre class="lang-java Prettyprint-override">

Код: Выделить всё

public static void main(String[] args) throws ScriptException {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine  = manager.getEngineByName("JavaScript");
engine.eval("print('HI');");
}
Но я получил еще одну ошибку:

Исключение в потоке «основной» java.lang.NullPointerException: Cannot
вызовите «javax.script.ScriptEngine.eval(String)», поскольку «engine» имеет значение
null в org.example.Main.main(Main.java:20)

Проблема в том, что ручная установка каких-либо компонентов по каким-то причинам невозможна. Мне просто нужно установить некоторые зависимости и заставить все работать. Что-то "нестандартное". Есть ли какое-либо решение этой проблемы? Может быть, есть какие-нибудь другие доступные движки?

Подробнее здесь: https://stackoverflow.com/questions/792 ... ithout-any
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»