• 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

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

    心有猛虎,细嗅蔷薇
  • 相关阅读:
    jenkins
    Nexus5安装PostmarketOS(Alpine Linux)并装上Docker
    Abp Abp.AspNetZeroCore 2.0.0 2.1.1 Path
    音速启动 Vstart 5.7 win10手动移除后台设置主页
    Win10 20h2 19041 任务管理器 性能 蓝屏
    PostMan 在请求中自动添加Header
    LINQPad_6.9.15_Premium
    Byd 字段清单 通过JS端点导入
    SAP B1 修改数据库中b1版本号
    event是啥
  • 原文地址:https://www.cnblogs.com/1314520xh/p/14286215.html
Copyright © 2020-2023  润新知