《原创不易,转载请标明出处:https://www.cnblogs.com/bandaobudaoweng/p/10785766.html》
开发Python程序,需求中需要用到Java代码,Python作为“胶水”语言能够很好的实现这种需求。具体实现的过程如下:
语言及包版本:python3.7(64位)、jdk1.8.0_271、JPype1-1.2.1-cp37-cp37m-win_amd64(64位)
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