python调用java文件_Python程序中调用Java代码的实践
1.环境准备
windows 7(64位)+JDK(64位)+Python(64位)+eclipse+pycharm
还需要一个作为桥梁的工具包,jpype1,这个工具包可以启动jvm,使java代码依然运行在jvm中。
实验过程中使用的各个工具的具体版本如下:
JDK(64位):1.8.0_102
Python(64位):3.7.2
jpype1(64位):0.7.2 直接pip install pype1来安装
eclipse+pycharm是两款开发工具,主要用来编写java和python代码
2.编码java代码,打jar包
工具安装完毕之后,接下来借助eclipse开发java代码,并打jar包。
1):开发java代码
2)打jar包
3)打jar包之后,获得了jar文件。
4)开发python脚本
#引入jpype模块
importjpypeimportos"""基本的开发流程如下:
①、使用jpype开启jvm
②、加载java类
③、调用java方法
④、关闭jvm(不是真正意义上的关闭,卸载之前加载的类)"""
#①、使用jpype开启虚拟机(在开启jvm之前要加载类路径)
#加载刚才打包的jar文件
jarpath = os.path.join(os.path.abspath("."), "D:\\hr.jar")#获取jvm.dll 的文件路径
jvmPath =jpype.getDefaultJVMPath()#开启jvm
jpype.startJVM(jvmPath,"-ea", "-Djava.class.path=%s" %(jarpath))#②、加载java类(参数是java的长类名)
javaClass = jpype.JClass("com.java.python.JavaPython")#实例化java对象#javaInstance = javaClass()
#③、调用java方法,由于我写的是静态方法,直接使用类名就可以调用方法
javaClass.main()#④、关闭jvm
jpype.shutdownJVM()pass
5)运行程序
6)如果是调用多个jar文件的话,要在jvm启动时指定jar文件路径,
jarpath,jarpath2,jarpath3,jarpath4是jar文件路径。
jpype.startJVM(jvmPath,"-ea", "-Djava.class.path=%s;%s;%s;%s" % (jarpath,jarpath2,jarpath3,jarpath4))
python调用java文件_Python程序中调用Java代码的实践相关推荐
- python 类函数调用外部函数_python类中调用外部函数,python 函数中 定义类
Q1:python函数里的数组如何在函数外调用出来 使用返回值的方法有两种: 可以直接把调用的函数作为变量使用 可以用调用函数给一个变量赋值 第一种情况见如下例子: l = [1,2,3,4,5] d ...
- python list元素合并_Python程序中使用表达式合并List列表元素 - Python - 服务器之家...
Python程序中使用表达式合并List列表元素 发布时间:2014-02-06 来源:服务器之家 在实现一个产品过程中,使用 Python Extension 需要一个语句将一个列表中子列表合并成为 ...
- Java相对路径调用dll文件,VS项目中调用他人提供的.lib和.dll文件的用法(绝对路径和相对路径)...
开发平台:vs2013 他人提供的动态库文件,包含 .lib 文件和 .dll 文件 在VS的工程中常常要设置头文件的包含路径和库文件的包含路径,当然你可以使用绝对路径,但是如果你这样设置了你只 ...
- python有null吗_Python世界中, 有Java中那种 @NotNull 吗( JetBrains提供的 ) ?
2017/2/6 描述 在写Java的过程中, 这两个东西非常有用( 对付null ) 那么, Python世界中, 可否有类似实现 ? 检查函数的返回值 ( @NotNull 提供 ) 检查函数的形 ...
- 本地方法(JNI)——从java 程序中调用C函数
[0]README 1) 本文部分文字描述 转自 core java volume 2 , 旨在理解 本地方法--从java 程序中调用C函数 的基础知识 : 2) for source code, ...
- python调用安卓相机_Android在应用程序中调用相机程序
有时,需要在应用程序中调用其他Android上已经安装完好的应用程序, 以下是一个调用相机(com.android.camera)的demo程序: PackageInfo pi = null; try ...
- C++程序中调用其他exe可执行文件方法
在编程过程中有个需求,点击某个按钮需要弹出系统的声音控制面板.在网上查了下代码中调用其他exe程序或者打开其他文件的方法. 自己借鉴网上的文章稍微总结下,加深下印象,也给方便自己用. 在代码中调用其他 ...
- 在VB应用程序中调用Excel2000
Visual Basic简称(VB)是设计Windows应用程序强有力的开发工具,"全球绝大多数Windows应用程序都是用VB开发的": Excel是目前使用最广泛的办公应用软件 ...
- Linux jsp php集成环境,ImageMagick在程序中调用(linux环境,jsp,php)
最近发现图片格式为cmyk时,图片上传浏览器不能正常显示,图片缩放会变成黑屏, 后来通过google发现imagemagick的功能很强大,安装可以采用两种方法,1)直接与php编译安装,在程序中调用 ...
最新文章
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(46)-工作流设计-设计分支
- Python setup.py开发与安装
- Windows 系统优化与瘦身
- 网站建设前的准备工作你了解多少?
- python3中使用subprocess模块执行外部命令
- CH - 6201 走廊泼水节(最小生成树,水题)
- workaround for COM_ATTRFRG_GEN 066
- Dynamics CRM2011 通过DeveloperToolkit在VS中部署遇到的问题
- Java 错误:找不到或无法加载主类(源文件中含有包名 package)
- html表格的形式制作调查问卷,问卷调查表格式,问卷调查怎么制作?
- wpa/wpa2无线网pin码破解
- 打印机无法双面打印处理办法
- Android 仿京东商品分类(简单实现 仅供参考)
- 顺丰速运面试java,顺丰三面Java后端面经分享
- klg-jpa:spring-data-jpa 最佳实践
- 2014年4月清明节厦门之旅
- 图片与Base64数据转换存储
- Iconfont图标的使用方法
- 关于参与新星计划的那一刻
- Libra R-CNN: Towards Balanced Learning for Object Detection