如何使用jython jar将python模块添加到java中

时间:2012-12-24 10:54:04

标签: java python netbeans python-2.7 jython

我使用Netbeans平台来构建我的应用程序uasing java languge。我需要使用jython调用一些python函数到java类中是唯一的方法。 不幸的是,当我试图运行程序时,显示的错误表明应用程序没有找到以下模块

Exception in thread "main" Traceback (most recent call last):

File "script.py", line 13, in <module>
    import re
ImportError: No module named re
  File "script.py", line 14, in <module>
    from string import *
ImportError: No module named string
Java Result: 1 

这是 script.py 中的代码,我想在其java类中调用其中一个方法

#!/pkg/ldc/bin/python2.1

import xml.parsers.expat
import re
from string import *
import sys

如何将这些python模块添加到我的应用程序中?

1 个答案:

答案 0 :(得分:2)

以下代码在我的Ubuntu盒子上运行得很好,包括Jython 2.7和Java 1.6(使用Eclipse和终端测试):

package myjythonproject;
import org.python.util.PythonInterpreter;

public class MyJythonProject {

    public static void main(String[] args) {
        try
        {
            PythonInterpreter.initialize(System.getProperties(), System.getProperties(), new String[0]);
            PythonInterpreter interp = new PythonInterpreter();
            interp.execfile("/home/vicent/foo.py");
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}

只需确保在类路径中使用jython.jar进行编译和执行。

<强>更新

我刚刚在我的Ubuntu盒子上安装了NetBeans 7.2.1(Java SE版本),创建了一个新的Java项目MyJythonProject,并将上面显示的代码添加到MyJythonProject.java文件中。然后在项目的Properties对话框中,我在左侧窗格中选择了Libraries。在右侧窗格中,我选择了Compile选项卡,单击了Add JARF/folder按钮并选择了我的jython jar(/opt/jython2.7a2/jython.jar)。我关闭了对话框,在主窗口的Run菜单中我选择了Clean and Build Project (MyJythonProject)。之后,我运行了这个项目,它就像一个魅力。不需要Python / Jython插件,只需告诉您项目安装jython.jar的位置。

更新2

另请注意,Jython不支持Python3,因此您必须使用Python2.x解释器。