gri*_*fin 10 python java jython javax.script
我正在尝试使用以下命令从Java 6应用程序调用Jython 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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
这导致NullPointerException:
java.lang.NullPointerException
at jythonEx.main(jythonEx.java:12)
Run Code Online (Sandbox Code Playgroud)
有谁知道我在这里做错了什么?
编辑:
谢谢你的回复!我将jython.jar添加到类路径中并且运行正常:
java -cp "./;jython.jar" jythonEx
Run Code Online (Sandbox Code Playgroud)
Osc*_*Ryz 15
您必须先注册您的引擎.
来自:ScriptEngineManager.getEngineByName:
[...]首先搜索已注册为句柄的ScriptEngineFactory [...]如果未找到此类工厂,则返回null
用户指南说要与JSR-223一起使用,你必须:
从Jython 2.5.1开始,JSR 223的实现捆绑在jython.jar中.只需将jython添加到您的CLASSPATH并请求python脚本引擎.
你已经这样做了吗?
编辑 关于你的评论:我认为你应该开一个新问题,你会得到更好的答案.
归档时间: |
|
查看次数: |
15238 次 |
最近记录: |