文章目录
目录
- 一、安装包
- 二、使用步骤
- 三、代码演示
- 四、自己写一个jar包
- 五、打包步骤
- 六、方法补充
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()
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包内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!
您可能感兴趣的文章:
- Python实现调用jar或执行java代码的方法详解
- Python调用Java可执行jar包问题
- Python代码一键转Jar包及Java调用Python新姿势
- python调用java的jar包方法
- Java实现的执行python脚本工具类示例【使用jython.jar】
- Python调用JAR包的类和方法详细指南
- Python调用Jar包的两种方式小结