python调用java

这么个标题多少有点蛋疼的感觉,两个都是互联网时代的语言,学习成本和执行效率也差不多,之所以会产生这种需求,多半是想在python中引用java的类,例如安卓和hadoop的生态圈,基本是java代码的天下,虽然python大数据有不错的接口,但直接调用java的需求总是有的。这个目前已经有解决方案,例如jython,采用了java编写的python的解释器,在java虚拟机上面运行了python虚拟机,想想都悲催,两个慢解释型语言的结合jython速度慢来自于基因。

还有一种方案就是使用c做桥接,c语言是操作系统之父,标准python是用c写的,而jni也可以调用java,实际上,使用jni调用java很多时候就是为了加快执行效率。这样一拍即可,把python中直接ava代码,只需要识别出来这些java代码,然后在python中把他们扔给一段c模块,这个c模块要实现对java的调用,这样一个方案就有了。理论如此,需要能够把java语句转换为c中的类型,而对c中的类型,能够处理java 中的package、class、method、interface,同时还需要做类型之间的转换和处理。

原文地址:https://www.cnblogs.com/laodageblog/p/3759379.html