将Python文件打包到JAR中以便通过Jython访问
在下面的代码中,我只是通过 jython 从 Java 代码执行 test.py。
public static void main(String[] args) {
org.python.util.PythonInterpreter python = new org.python.util.PythonInterpreter();
python.execfile("test.py");
...
我的问题是,test.py 需要和 jar 文件在同一个目录下才能运行。
我希望把 test.py 打包进 jar 文件里,并且仍然能够通过 jython 执行它。
在 如何在 jar 文件中调用 Python 脚本? 中建议的方法是使用 ClassLoader 类的 getResourceAsStream 方法来读取脚本,但对我来说不太管用,因为我的 test.py 还导入了其他一些打包在 jar 文件里的 Python 脚本。
我对 Java 和 jython 还很陌生,真的很困惑。
任何帮助都会非常感激..!
2 个回答
0
通过使用类的“getResourceAsStream”方法,从jar文件中提取python文件。
例如,可以参考这个链接:http://fiji.sc/wiki/index.php/Jython_Scripting#Distributing_jython_scripts_in_a_.jar_file
6
你可以把 test.py 放在 jar 文件的根目录下,然后把其他脚本按照正常的 Python 文件系统结构来组织。这样做之后,你可以像下面这样操作:
public static void main(String[] args) {
org.python.util.PythonInterpreter python = new org.python.util.PythonInterpreter();
python.exec("import test");
python.exec("test.callsomthing()");
}
在 test.py 中的导入语句应该可以正常工作,包括从 test.py 导入其他模块。