《原创不易,转载请标明出处: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

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

最新文章

  1. MFC在关闭第二个窗口时关闭主对话框
  2. javascript中求浏览器窗口可视区域兼容性写法
  3. JAVA基础学习day19--IO流一、FileWrite与FileReader
  4. 【python cookbook】【数据结构与算法】12.找出序列中出现次数最多的元素
  5. windows下修改mysql用户名和密码
  6. c语言指针详解(转载)
  7. 【转】The final local variable xxx cannot be assigned, since it is defined in an enclosing type
  8. javascript变量,类型 第9节
  9. hdu2399GPA
  10. PPS2013校园招聘笔试题
  11. Docker Register安装与基本认证
  12. drupal 开发简单站点流程
  13. vuex的学习笔记
  14. linux下查看php-fpm是否开启以及如何开启
  15. 在WPF中调用打开文件对话框
  16. c# 对文件操作
  17. Android手机用KSWEB搭建Web服务器成功安装WordPress
  18. 23.网络.md
  19. RabbitMQ AMQP (高级消息队列协议)
  20. [LeetCode 题解]:Combinations

热门文章

  1. 自动化工具之Appium工具简单介绍
  2. Java算法面试题(史上最强、持续更新、吐血推荐)
  3. 孟老板 Paging3 (二) 结合Room
  4. npm i安装命令中的-g -D -S的区别
  5. kubernetes之副本控制器(RC/RS)
  6. 一QT获取当前时间和日期
  7. Prometheus+Grafana企业监控系统
  8. Java8 Map中新增的方法使用总结
  9. 使用xcodeproj 动态插入第三方代码
  10. 循序渐进BootstrapVue,开发公司门户网站(6)--- 门户网站后端内容管理