加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

通过脚本引擎(jython)从Java调用Python?

发布时间:2020-05-24 16:43:50 所属栏目:Java 来源:互联网
导读:我试图使用 javax.script从 Java 6应用程序调用Jython: import javax.script.ScriptEngine;import javax.script.ScriptEngineManager;import javax.script.ScriptException;public class jythonEx{ public static void

我试图使用 javax.script从 Java 6应用程序调用Jython:

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)

有人有什么想法吗?

编辑:

感谢您的回应!我将jython.jar添加到类路径,并正常运行:

java -cp "./;jython.jar" jythonEx

解决方法

你必须先注册你的引擎.

从:ScriptEngineManager.getEngineByName:

[…] first searches for a ScriptEngineFactory that has been registered as a handle […] Returns null if no such factory was found

用户指南说to use it with JSR-223你必须:

As of Jython 2.5.1 an implementation of JSR 223 is bundled in jython.jar. Simply add jython to your CLASSPATH and ask for the python script engine.

你有没有这样做?

编辑关于你的评论:我想你应该开一个新问题,你会得到更好的答案.

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读