text":"Python是一门“胶水”语言 , 非常灵活多变 , 但是在一些特殊的时候 , 也需要调用其它语言来协助实现更多的功能;在公司使用python进行接口测试的时候 , 会遇到有些接口数据是由公司的开发人员进行自定义的加密算法进行加密的 , 此时 , 要开发告诉加密代码是不太可能的 。 跟开发小哥沟通时 , 很多时候都是由他给一个jar包 , 然后剩下的就由测试人员来发挥了 。
那python 该如何使用这个jar包呢?
这里给大家介绍的是jpype;
一、什么是Jpype
JPype是一个能够让 python 代码方便地调用 Java 代码的工具;
二、安装Jpype
pip install jpype1 (注意:是jpype1哦 , 这个1请一定不要忘记)
三、Jpype的使用流程
Jpype是给python程序员来使用的 。 他能调用启jar包 , 其实还是要去启用jvm来对java代码进行运行;所以请确保你的jdk正确安装并配置好环境变量 。 基本流程:
①、使用jpype开启jvm
②、加载java类
③、调用java方法
④、关闭jvm(不是真正意义上的关闭 , 卸载之前加载的类)
举例说明:
1、先写好java代码 , 并生成jar包;
package com.pyjava.demo;
public class Demo1 {
public int add(int a int b) {
return a+b;
导出成jar包:pyjava.jar
2、使用Jpype代码:
import jpype
import os
jarpath = os.path.join(os.path.abspath('.') '//Users//luoman//file//pyjava.jar') #定义变量引用jar包的路径
# 1、开启jvm
jvmpath = jpype.get_default_jvm_path() #获取jvm的路径 , 一般情况下由此函数获取就可以
jpype.startJVM(jvmpath \"-ea\" \"-Djava.class.path=%s\" % (jarpath)) # 使用startJvm()函数 启动jvm
# 2、加载java类
javaclass = jpype.JClass(\"com.pyjava.demo.Demo1\") # 此处要写长类名(包名.类名)
# 3、调用java方法
jc = javaclass() #定义java对象
sum = jc.add(34) #调用jar包中的函数
print('两数之和为:'sum)
# 4、关闭jvm
jpype.shutdownJVM()
运行结果:两数之和为:7
也可以直接调用java的api比如调用java的标准输出语句:
【Java|在python程序中调用java代码】java.lang.System.out.println(\"helloworld\")
四、startJVM() 函数详细说明
startJVM() 函数的作用是启动 JAVA 虚拟机
jpype.startJVM() 的定义
startJVM(jvm *args)
参数说明:
jvm:描述你系统中 jvm.dll 文件所在的路径 , 可以直接使用get_default_jvm_path()函数获取默认路径 , 或者写jvm.dll的绝对路径也可以
*args:为可选参数只要是合法的jvm启动参数都可以(大家可以百度一下jvm的启动参数)
\"-Djava.class.path=%s\"% (jarpath) 此处是引用jar包 , 如果有多个jar包要引用的话可以这么写:
-Djava.class.path=%s%s%s\" % (jarpath1jarpath2jarpath3)
"
- 中国数字人演员 “春草”惊鸿亮相 励志阳光面向年轻人市场
- 「科技」千里追飞蛾,科学家在飞蛾背上安装追踪器
- ipfs|巨鲸数字-IPFS-IPFS知识大全来了, 你想知道的都在这里!
- 看来很多人都在等9月了,我不一样!我还是入手了iPhone13PM
- 手机上哪些被忽视的小细节,竟然在偷偷泄漏你的隐私?
- 本文转自:央广网央广网上海8月26日消息(记者杨静 韩晓余 郭振丹)8月26日|2022世界人工智能大会9月1日至3日在沪举行 百场论坛展现行业趋势
- coloros13|ColorOS 13发布在即!四大升级亮点抢先看
- 显卡|黄仁勋:显卡 打折!
- |实话说,现在的手机还真挺难选的
- 刻蚀机|为什么美国只在光刻机上找麻烦,却不限制芯片刻蚀机?