1

我使用 Netbeans 平台使用 java 语言构建我的应用程序。我需要使用 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 模块添加到我的应用程序中?

4

1 回答 1

2

以下代码在我的带有 Jython 2.7 和 Java 1.6 的 Ubuntu 机器上运行良好(使用 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 文件中。然后在PropertiesLibraries在左窗格中选择的项目对话框中。在右窗格中,我选择了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 解释器。

于 2012-12-24T11:10:27.770 回答