python调用java之启动jpype
认识JPype
- JPype是用于在python中调用java程序而诞生的,可以使得在python中使用java。它是一个python模块。
- JPype是python和java之间的桥梁,理论上的目标是,使得python可以访问java程序中所有公开的特性。即在java中能访问的,python通过JPype桥梁也可以访问。
- JPype通过控制JVM来控制java程序,值得关注的是JVM和python在同一个进程,可以理解为两个子线程共享相同的内存空间和线程。在python崩溃的时候JVM也会自动崩溃。
- 对python用户来说,大多时候不用关心JVM,仅仅需要操作的是启动和关闭JVM。在python所在进程的生命周期内,不可以重启JVM。即关闭JVM后再启动JVM会遇到错误。
安装JPype
建议的方式:pip install JPype1
启动JVM
- API:
jpype.startJVM( *args , **kwargs )
第一种方式:
不指定任何参数启动。
if __name__ == "__main__":jpype.startJVM()java.lang.System.out.println("hello world!")
"D:\Program Files\Python39\python.exe" D:/myProjects/python/test_JPype/main.py
hello world!
如果没有指定参数,它将使用默认的类路径和 jvmpath 启动 JVM。
默认类路径为jpype.getClassPath().
默认 jvmpath为jpype.getDefaultJVMPath().
if __name__ == "__main__":print("默认类路径:"+jpype.getClassPath())print("默认JVM:"+jpype.getDefaultJVMPath())
默认类路径:.;D:\Program Files\Java\jdk-16.0.2\lib
默认JVM: D:\Program Files\Java\jdk-16.0.2\bin\server\jvm.dll
默认路径与您的JDK安装路径有关。
默认类路径包含当前路径与JDK的lib目录。
第二种方式
指定参数启动。
1、如果你不想使用默认的jvm.dll
jpype.startJVM(jvmpath="You specify the jvm path")
2、 如果你想启动时加载一个jar包
jpype.startJVM("-Djava.class.path={}".format("your jar path")) # jpype.startJVM("-Djava.class.path={}".format(r"D:\myProjects\java\test1\out\artifacts\test1_jar\test1.jar"))
jpype.startJVM(classpath=r"D:\myProjects\java\test1\out\artifacts\test1_jar\test1.jar")
3、 如果你想启动时加载多个jar包
jpype.startJVM(classpath=[r"D:\test_1\test1.jar",r"D:\test_2\test2.jar"])
4、 如果想启动时加载一个目录下所有jar包
jpype.startJVM(classpath=[r"D:\test_1\*"])
5、如果你想启动时加载多个目录下所有jar包
jpype.startJVM(classpath=[r"D:\test_1\*",r"D:\test_2\*"])
JVM启动后还需要加载jar包怎么办
在jvm启动后,如果还有jar包没有在类路径里包含,可以使用jpype.addClassPath
这个api来完成增加jar包。
addClassPath(r"D:\test_1\test1.jar")
addClassPath(r"D:\test_1\*")
这个API会判断jvm是否启动:
如果jvm已经启动了,则将jar包路径增加到classLoader。
如果没有启动,则将jar包路径增加到_CLASSPATHS,然后启动jvm时加载这个jar包,这种方式与在启动时指定jar包类路径是相似的。
总结
这篇文章简单描述JPype的含义以及安装方式,然后介绍了JPype的启动,以及在启动时加载jar包和启动后加载jar包的方法。
python调用java之启动jpype相关推荐
- 绿化版Java11的环境配置与Python调用Java
绿化Java环境的安装与配置 安装JDK 在Oracle的官网下载: 官方最新版本是16,个人选择下载11版本的zip压缩包:jdk-11.0.6_windows-x64_bin.zip 网盘下载地址 ...
- python调用java之Jpype实现java接口
python实现java接口 概述 java程序 java接口 java测试函数 在python中实现java接口的两种方式 第一种:JImplements JImplements的使用示例 JImp ...
- python调用java方法_python调用java
一.环境确认: 首先,要确认安装的jdk版本是1.8以上:其次,jdk安装位数与python安装的位数一致,及要么一起64位版本要么一起32版本. (以上2点不满足均会报错,比如:not found ...
- Python调用Java代码部署及初步使用
Python调用Java代码部署: jpype下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#jpype 下载的时候需要使用Chrome浏览器进行下载 ...
- python调用java的方法
最近自己开发的一套测试平台,因为上游系统经常修改主数据,导致其中一个功能经常失败,要频繁找上游测试帮忙修改数据. 基于此种原因,对于这种过于依赖上游系统的接口,决定放弃直接调上游系统的http请求下发 ...
- python调用java代码方法
前言: 公司要测试对外接口,接口中的数据又涉及到加密的问题,而python对加密数据进行位运算后,居然无法逆向位运算回来了(应该是个人能力不够吧),只好调用同事之前用的java代码中的函数去解码了,花 ...
- python调用java文件_Python程序中调用Java代码的实践
1.环境准备 windows 7(64位)+JDK(64位)+Python(64位)+eclipse+pycharm 还需要一个作为桥梁的工具包,jpype1,这个工具包可以启动jvm,使java代码 ...
- Python 调用Java
2019独角兽企业重金招聘Python工程师标准>>> 前提: Linux 环境 1 安装 jpype1 安装后测试代码: from jpype import * startJVM( ...
- python调用java方法_python调用Java方法传入HashMap ArrayList
1.Java代码: package com; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap ...
- python调用java的jar包_python调用java的jar包报错127
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 最近在弄python需要调用到Java的jar包,按照网上的教程走,最后总是报错No matching overloads found for [init ...
最新文章
- 激光雷达和V2X技术
- TensorFlow如何充分使用所有CPU核数,提高TensorFlow的CPU使用率,以及Intel的MKL加速
- bzoj 2563 贪心 思想
- oracle服务器和客户端字符集的查看和修改
- 张正友相机标定Opencv实现以及标定流程标定结果评价图像矫正流程解析(附标定程序和棋盘图)
- 汽车之家:基于 Flink + Iceberg 的湖仓一体架构实践
- 什么C++程序员,什么Java程序员
- 周六直播丨细致入微 – OceanBase云平台安装部署实战
- Windows下C++将各种资源文件引入exe文件(即无需携带很多res资源包)
- linux启动项目报连不上mysql_Linux运维常见故障及处理的 32 个妙计
- 【转】解决“你没有权限访问,请与网络管理员联系”
- 包与四种权限访问修饰符
- CAD控件Aspose.CAD V17.4发布 | 支持DWF和DWG格式
- python成语接龙代码_最全的成语接龙代码(附带有网页版)
- 采用16线激光雷达和轮式里程计调用cartographer室内融合定位
- CSS第7章上机练习1(制作QQ会员页面导航)
- 七牛云html文件夹,七牛命令行上传自动生成目录
- 关于pyecharts可视化进阶中国经济、人口等数据
- 四边形可以分为几类_四边形的分类
- HTPP常用请求头、HTTP响应头、HTTP content-type
热门文章
- zTree中设置idKey跟pId对象关联
- gmp计算机分类,GMP附录——计算机化系统汇总.pptx
- 离散元pfc 岩土工程
- w10系统怎样打开计算机策略,Win10系统组策略在哪里打开
- mysql 端口号_mysql的端口号(mysql常用端口号)
- F1C100S自制开发板调试过程
- 购物网站 前台后台 思维导图_「培哥学堂」60套思维导图PPT送给你,让你的工作事半功倍!(建议收藏)...
- 大学计算机课思维导图,快速记忆和理解大学计算机思维导图
- java导出地图矢量Shp文件
- 【技术分享】配置手工模式链路聚合(交换机之间直连)