繁体   English   中英

我可以让jar执行python脚本吗?

[英]Can I make a jar execute a python script?

有什么方法可以在不提取jar的情况下调用jar中的脚本?

由于JAR文件是zip存档,因此您可以将单个文件解压缩到标准输出,然后通过管道传输到Python。

unzip -p your.jar file_in_jar.py | python

如果将zip文件作为参数调用,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

如果您只想使用纯python,则可以使用zipfile 然后,您可以使用类似子进程的方法,或者如果文件已经编译,则可以使用此方法

如果要从Java代码中使用它,则可以使用类似于在jar文件中加载类/资源的方法。 一个变体是目前在这里 ,另一个在这里 我没有尝试过。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM