我使用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模块添加到我的应用程序中?
答案 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解释器。