将jar中的python文件捆绑在一起以便通过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文件的同一目录中。
我需要在jar中捆绑这个test.py,并且仍然可以使用jython执行它。

在如何使用python调用jar文件中的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导入其他模块。

使用类的“getResourceAsStream”从jar中提取python文件。

例如: http : //fiji.sc/wiki/index.php/Jython_Scripting#Distributing_jython_scripts_in_a_.jar_file