java - 将 python 文件捆绑到 jar 中以通过 jython 访问

标签 java 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 执行它。

How do you invoke a python script inside a jar file using python?中建议的方法使用 ClassLoader 类中的 getResourceAsStream 方法读取字符串中的脚本对我来说不起作用,因为我的 test.py 导入了更多捆绑在 jar 内的 python 脚本。

作为 java 和 jython 的新手,我真的很困惑。
任何帮助将不胜感激..!

最佳答案

您可以简单地将 test.py 放在 jar 的根目录中,其他脚本的组织方式就像它们在普通 python 中的 fs 上一样。 然后你可以做类似的事情:

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 导入其他模块。

关于java - 将 python 文件捆绑到 jar 中以通过 jython 访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6260311/

相关文章:

java - 我应该在 GKE 引擎上部署 api-gateway 吗?

python - 计算 if 循环的迭代次数

python - 我的编码有什么问题? 'AttributeError ' 模块'对象没有属性 'VideoWriter fourcc''

java - 在eclipse中的另一个用户库中添加用户库

java - 使用Maven,如何正确部署依赖于J2EE/JPA JAR的WAR?

java - NullPointerException @一对一映射

maven - 流口水 6.4 KieScanner : How create and add Jar with rules in Maven?

java - 什么是 MANIFEST.MF 中的 list 版本?

java - 在任何标准库中是否有帮助程序类实现对 boolean 集合的逻辑操作?

python - 加速 CSV 更新/导入 Django 模型