将jar中的python文件捆绑在一起以便通过jython进行访问

Nul*_*oet 2 python java jython jar

在下面的代码中,我只需使用jython从java代码执行test.py.

public static void main(String[] args) {
  org.python.util.PythonInterpreter python = new org.python.util.PythonInterpreter();
  python.execfile("test.py");
  ...
Run Code Online (Sandbox Code Playgroud)

我的问题是test.py需要在运行jar文件的同一目录中.
我需要将这个test.py捆绑在jar中,并且仍然可以使用jython执行它.

如何使用python调用jar文件中的python脚本中建议的方法使用ClassLoader类中的getResourceAsStream方法读取字符串中的脚本对我不起作用,因为我的test.py导入了更多捆绑在jar中的python脚本.

刚接触java和jython我真的很困惑.
任何帮助将受到高度赞赏..!

Dan*_*ply 6

您可以简单地将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()");
}
Run Code Online (Sandbox Code Playgroud)

test.py中的导入应该正常工作,包括从test.py导入其他模块.