zoukankan      html  css  js  c++  java
  • Python中调用Java程序包

     《原创不易,转载请标明出处:https://www.cnblogs.com/bandaobudaoweng/p/10785766.html》

        开发Python程序,需求中需要用到Java代码,Python作为“胶水”语言能够很好的实现这种需求。具体实现的过程如下:

        语言及包版本:python3.7(64位)、jdk1.8.0_271JPype1-1.2.1-cp37-cp37m-win_amd64(64位

        编辑器:eclipsepycharm

       Jpype:得到离线包之后,在cmd中使用命令:     pip install   JPype1-1.2.1-cp37-cp37m-win_amd64   提示:successful 就安装成功

       

    1、在eclipse里编辑Java程序并打包生成jar文件

     用python在cmd窗口运行:python  jpype_test.py

    # 引入jpype模块
    import jpype
    import os
    
    if __name__ == '__main__':
        """
        基本的开发流程如下:
        ①、使用jpype开启jvm
        ②、加载java类
        ③、调用java方法
        ④、关闭jvm(不是真正意义上的关闭,卸载之前加载的类)
        """
        # ①、使用jpype开启虚拟机(在开启jvm之前要加载类路径)
        # 加载刚才打包的jar文件
        jarpath = os.path.join(os.path.abspath("."), "C:\Users\teddy\Desktop\JavaFile\HelloWorld.jar")
        # 获取jvm.dll 的文件路径
        jvmPath = jpype.getDefaultJVMPath()
    
        # 开启jvm:.如果是调用多个jar文件的话,要在jvm启动时指定jar文件路径,jarpath,jarpath2,jarpath3,jarpath4是jar文件路径。
    # jpype.startJVM(jvmPath,"-ea", "-Djava.class.path=%s;%s;%s;%s" % (jarpath,jarpath2,jarpath3,jarpath4))
        jpype.startJVM(jvmPath,"-ea", "-Djava.class.path=%s" % (jarpath))
    
        # ②、加载java类(参数是java的长类名)
        javaClass = jpype.JClass("Demo1.HelloWorld")
    
        # 实例化java对象
        # javaInstance = javaClass()
    
        # ③、调用java方法,由于我写的是静态方法,直接使用类名就可以调用方法
        javaClass.show()
    
        # ④、关闭jvm:jvm随着python程序的退出而结束
        jpype.shutdownJVM()
    
        pass

    参考别人的文章,自己跑了一遍,效果还可以。

    心有猛虎,细嗅蔷薇
  • 相关阅读:
    pat甲级1013
    二分查找
    pat甲级1012
    win10 + Ubuntu16.04双系统安装
    win10 U盘重装
    win10蓝牙添加设备无法连接
    Android自定义控件总结
    11.粘性控件
    10.侧拉删除
    9.视差特效、回弹动画、overScrollBy
  • 原文地址:https://www.cnblogs.com/1314520xh/p/14286215.html
Copyright © 2011-2022 走看看