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

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

心有猛虎,细嗅蔷薇
原文地址:https://www.cnblogs.com/1314520xh/p/14286215.html