返回顶部
分享到

python怎么调用java的jar包

python 来源:互联网 作者:佚名 发布时间:2025-06-22 18:51:45 人浏览
摘要

一、安装包 1 pip3 install JPype1 二、使用步骤 1、导入jpype模块 2、python要调用的java的jar包路径 3、获取jvm.dll的文件路径 4、使用jpype开启虚拟机 5、加载java类 6、实例化类 7、调用java方法 8、关闭

一、安装包

1

pip3 install JPype1

二、使用步骤

1、导入jpype模块

2、python要调用的java的jar包路径

3、获取jvm.dll的文件路径

4、使用jpype开启虚拟机

5、加载java类

6、实例化类

7、调用java方法

8、关闭jvm

三、代码演示

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

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包

1

2

3

4

5

6

7

8

9

10

11

12

13

14

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文件

1

javac Hello.java

2、创建jar包

1

jar cf xxxx.jar xxx.class

3、打包必须得有java开发环境哈

六、方法补充

Python调用Java的jar包方式

其实调用 Java 的 jar 包代码,和其他外部程序一样,可以使用 Python 的 subprocess 模块或者需要调用 Java 的 API(比如 Jython)来实现。下面是两个示例代码:

使用 subprocess 模块:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

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:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

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 代码。


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计