一、安装包
pip3 install jpype1
二、使用步骤
1、导入jpype模块
2、python要调用的java的jar包路径
3、获取jvm.dll的文件路径
4、使用jpype开启虚拟机
5、加载java类
6、实例化类
7、调用java方法
8、关闭jvm
三、代码演示
import jpype
#jar绝对包路径
jar_path = '/users/qinhaili/desktop/mathutil.jar'
print(jar_path)
#获取默认的 jvm 路径
jvmpath = jpype.getdefaultjvmpath()
#启动 java 虚拟机
jpype.startjvm(jvmpath,"-ea",f"-djava.class.path={jar_path}")
#环境测试代码,#成功输出说明安装环境成功
jpype.java.lang.system.out.println( "hello world!" )
#获取java类
java_class = jpype.jclass('mathutil')
#类调用静态方法(类.方法名())
result1 = java_class.sayhello()
print(result1)
#调用对象方法(类实例.方法名())
#实话java类
class_obj = java_class()
result2 = class_obj.add(1,2)
print(result2)
#关闭java虚拟机
jpype.shutdownjvm()
四、自己写一个jar包
class mathutil{
public static string sayhello() {
return "hello how are you";
}
public mathutil() {
}
public int add(int a, int b) {
return a + b;
}
}
五、打包步骤
1、编译得到.class文件
javac hello.java
2、创建jar包
jar cf xxxx.jar xxx.class
3、打包必须得有java开发环境哈
六、方法补充
python调用java的jar包方式
其实调用 java 的 jar 包代码,和其他外部程序一样,可以使用 python 的 subprocess 模块或者需要调用 java 的 api(比如 jython)来实现。下面是两个示例代码:
使用 subprocess 模块:
import subprocess
java_path = "/usr/bin/java" # java 的路径
jar_path = "path/to/your/jar/file.jar" # jar 包的路径
# 要执行的命令
cmd = [java_path, "-jar", jar_path]
# 执行
proc = subprocess.popen(cmd, stdout=subprocess.pipe, stderr=subprocess.pipe)
out, err = proc.communicate()
# 打印输出和错误
print(out.decode("utf-8"))
print(err.decode("utf-8"))
使用 jython api:
from java.lang import runtime
jar_path = "path/to/your/jar/file.jar" # jar 包的路径
# 获取当前 jvm 实例
jvm = runtime.getruntime()
# 加载 jar 包
jvm.load(jar_path)
# 调用 jar 包中的方法
result = jvm.callmethod("com.example.yourclass", "yourmethod", arg1, arg2)
# 打印结果
print(result)
这里假设你已经安装好了 jython。需要注意的是,这种方式需要在 jython 中编写代码,而不是 python,因为 jython 是一种 python 解释器,它能够解析 java 代码。
到此这篇关于python如何调用java的jar包的文章就介绍到这了,更多相关python调用jar包内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论