Python能不能调用jar包?

Python能不能调用jar包?,第1张

Python是不能直接调用jar包的,但是通常都以Jython调用jar包作为一种很好的解决方式。

ython是一种完整的语言,而不是一个Java翻译器或仅仅是一个Python编译器,它是一个Python语言在Java中的完全实现。Jython也有很多从CPython中继承的模块库。最有趣的事情是Jython不像CPython或其他任何高级语言,它提供了对其实现语言的一切存取。所以Jython不仅给你提供了Python的库,同时也提供了所有的Java类。这使其有一个巨大的资源库。

ython由于继承了Java和Python二者的特性而显得很独特。其可以对Java类的无缝存取。

在Java中实现Python可以看到有趣的Java反射API的作用。反射使Jython能无缝地使用任何Java类。Jython从CPython中继承了很多优点,但CPython不像别的专为Python所写的一样,在C和Python之间有一些问题限制了C库函数的使用。在Jython中真正解决了这个问题,使其编程的效率和生产力得到了很大的提高。

由于与Java的无缝集成,Jython能使任何部署了Java应用和框架的公司受益而不需要额外的工作。接受任何一种部门的编程语言,对任何一个公司而言都是不容易的,需要深思熟虑,因为这牵涉到整体结构、服务器和外围的工具。Jython作为Java的一个无缝集成的语言,可以在已存在的Java应用上无缝增加而不需要重大抉择。很多公司都花费了很多资金来建立Java的应用,这使采用CPython、Perl、Ruby、PHP和其他不能透明地集成已有Java实现的高级语言的效益降低,吸引力下降。而Jython有能力对已存在的Java框架进行补充,且二者能无缝地结合。

不建议研究jython。比较简单的思路是把python脚本完全当做一个外部程序,用shell方式调用它。

首先设计好python脚本的接口,把参数用命令行方式传入,然后输出打印出来。示例:

$ python func.py arg1 arg2

result

然后在java里就可以用Runtime来执行shell命令,解析输出字符串然后得到结果。

#导入jpype

from jpype import *

#启动java虚拟机,加载第三方类库

startJVM(r'C:\Program Files\Java\jre6\bin\client\jvm.dll','-ea',r'-Djava.class.path=c:\Program Files\Sikuli X\sikuli-script.jar')

#关闭java虚拟机

shutdownJVM()


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/yw/8396705.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-16
下一篇2023-04-16

发表评论

登录后才能评论

评论列表(0条)

    保存