有没有办法在jar中调用脚本而不提取它?
答案 0 :(得分:3)
由于JAR文件是zip存档,您可以将单个文件解压缩到标准输出并传递给Python。
unzip -p your.jar file_in_jar.py | python
答案 1 :(得分:1)
如果使用one作为参数调用,Python将解释存储在zip文件中的名为“__main__.py”的文件。由于jar文件是zip文件,所以你要做的就是将Python脚本命名为“__main__.py”,或创建一个导入主脚本的“__main__.py”脚本,并从Java调用Python解释器作为外部进程,将.jar文件路径作为唯一参数传递。 (从Python脚本中导入其他Python模块将像.jar文件所在的目录结构一样工作)
然后,您可以通过管道(stdin / stdout)或使用某种客户端/服务器方法(xmlrpc,Unix命名管道等等)与Python进程通信。
另一个选择是使用Jython - 基于JVM的Python解释器,以便您可以直接从Java代码调用Python代码 - 有几个选项可以将Jython代码集成到java程序中,这里描述了一些女巫: http://jythonpodcast.hostjava.net/jythonbook/en/1.0/JythonAndJavaIntegration.html#using-jython-within-java-applications
答案 2 :(得分:0)