在下面的代码中,我只是使用 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/