美文网首页Python编程学习交流中心大数据 爬虫Python AI Sql
学过java的有福利了,学过java的学python如履平地(j

学过java的有福利了,学过java的学python如履平地(j

作者: 璃沫仙人 | 来源:发表于2019-01-11 15:04 被阅读0次

    学过java的有福利了,学过java的学python如履平地(jpype)

    为什么,看下文————————————————————————————————————————————

    简介

    Python 作为一种灵活的软件开发语言在当今被广泛使用。在软件开发过程中,有时需要在 Python 项目中利用既有的 Java 代码,已达到节省时间和开发成本的目的。因此,找到一个 Python 代码调用 Java 代码的桥梁是非常有意义的。 JPype 就是这样的一个工具,利用它可以使 Python 程序方便的调用 Java 代码。

    JPype使Python可以完全访问Java类库。Jython/JPython重新实现了Python,JPype则提供了两个虚拟机的接口。JPype可以在JSP,Servlet、RMI服务器和IDE插件都方面用Python代替Java。

    缺陷:

    package之外的类(在<default>中)不能被导入。

    不能重启JVM。

    不能处理依赖当前类的方法。

    快速入门

    • 安装

    关注小编,加小编的Q君羊 ,有python学习视频教程领取哦!
    线程的启动需要增加: jpype.attachThreadToJVM(),可以使用isThreadAttachedToJVM() 检查。使用java线程要注意这里不支持回调。基于OS的线程通常问题不大,但是仿真线程,比如microthread,在java中实际为一个线程。

    java的synchronized同步,jpype用synchronized(O)实现,返回monitor对象。monitor为GCd时会破坏锁。

    Jpype使用JNI,它并不是最有效的接口。并且Jpype桥接两个完全不同的实时环境,需要来回转换,性能一般。

    在java中使用

    Foo。

    由于上述名字变异,你不能使用标准的包访问方式来获取它们。使用JPackage的方法getclass来载入。

    非静态内部类不能从python代码中实例化。但是可以完全没有问题地使用从java代码中接受到的实例。

    演示:

    小伙伴们学会了吗?

    文章来自网络,如有侵权联系小编删除!

    相关文章

      网友评论

        本文标题:学过java的有福利了,学过java的学python如履平地(j

        本文链接:https://www.haomeiwen.com/subject/rqyxdqtx.html