Вызов Python из Java через скриптовый движок (jython)?
Я пытаюсь вызвать Jython из приложения Java 6, используя javax.script
:
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class jythonEx
{
public static void main (String args[]) throws ScriptException
{
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine pyEngine = mgr.getEngineByName("python");
try {
pyEngine.eval("print "Python - Hello, world!"");
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
это вызывает исключение NullPointerException:
java.lang.NullPointerException
at jythonEx.main(jythonEx.java:12)
кто-нибудь знает, что я здесь делаю неправильно?
Edit:
Спасибо за ответы! Я добавила языка Jython.jar к пути к классам, и он работает правильно:
java -cp "./;jython.jar" jythonEx
2 ответов
вы должны сначала зарегистрировать свой двигатель.
From:вызов scriptenginemanager.getEngineByName:
[...] сначала ищет ScriptEngineFactory, который был зарегистрирован как дескриптор [...] Возвращает null, если такая фабрика не найдена
руководство пользователя говорит использовать его с JSR-223 вы должны:
по состоянию на Jython 2.5.1 в комплекте идет реализация JSR 223 в языка Jython.сосуд. Просто добавьте jython в свой путь к классам и попросите движок скриптов python.
ты уже это сделал?
редактировать О вашем комментарии: я думаю, вы должны открыть новый вопрос, вы получите лучшие ответы.