python如何调用java的jar包

2025-06-22 17:50
文章标签 java python 调用 jar

本文主要是介绍python如何调用java的jar包,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《python如何调用java的jar包》这篇文章主要为大家详细介绍了python如何调用java的jar包,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以参考一下...

一、安装包

pip3 install JPype1

二、使用步骤

1、导入jpype模块

2、ppythonython要调用的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.China编程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()
http://www.chinasem.cn

四、自己写一个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, "-jbCruRUZar", 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", "yo编程urMethod", arg1, arg2)

# 打印结果
print(result)

这里假设你已经安装好了 Jython。需要注意的是,这种方式需要在 Jython 中编写代码,而不是 Python,因为 Jython 是一种 Python 解释器,它能够解析 Java 代码。

到此这篇关于python如何调用java的jar包的文章就介绍到这了,更多相关python调用jar包内容请搜索China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程China编程(www.chinasem.cn)!

这篇关于python如何调用java的jar包的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1155167

相关文章

Python Flask实现定时任务的不同方法详解

《PythonFlask实现定时任务的不同方法详解》在Flask中实现定时任务,最常用的方法是使用APScheduler库,本文将提供一个完整的解决方案,有需要的小伙伴可以跟随小编一起学习一下... 目录完js整实现方案代码解释1. 依赖安装2. 核心组件3. 任务类型4. 任务管理5. 持久化存储生产环境

Python使用python-pptx自动化操作和生成PPT

《Python使用python-pptx自动化操作和生成PPT》这篇文章主要为大家详细介绍了如何使用python-pptx库实现PPT自动化,并提供实用的代码示例和应用场景,感兴趣的小伙伴可以跟随小编... 目录使用python-pptx操作PPT文档安装python-pptx基础概念创建新的PPT文档查看

详解Java中三种状态机实现方式来优雅消灭 if-else 嵌套

《详解Java中三种状态机实现方式来优雅消灭if-else嵌套》这篇文章主要为大家详细介绍了Java中三种状态机实现方式从而优雅消灭if-else嵌套,文中的示例代码讲解详细,感兴趣的小伙伴可以跟... 目录1. 前言2. 复现传统if-else实现的业务场景问题3. 用状态机模式改造3.1 定义状态接口3

Python批量替换多个Word文档的多个关键字的方法

《Python批量替换多个Word文档的多个关键字的方法》有时,我们手头上有多个Excel或者Word文件,但是领导突然要求对某几个术语进行批量的修改,你是不是有要崩溃的感觉,所以本文给大家介绍了Py... 目录工具准备先梳理一下思路神奇代码来啦!代码详解激动人心的测试结语嘿,各位小伙伴们,大家好!有没有想

Python 字符串裁切与提取全面且实用的解决方案

《Python字符串裁切与提取全面且实用的解决方案》本文梳理了Python字符串处理方法,涵盖基础切片、split/partition分割、正则匹配及结构化数据解析(如BeautifulSoup、j... 目录python 字符串裁切与提取的完整指南 基础切片方法1. 使用切片操作符[start:end]2

Python库 Django 的简介、安装、用法入门教程

《Python库Django的简介、安装、用法入门教程》Django是Python最流行的Web框架之一,它帮助开发者快速、高效地构建功能强大的Web应用程序,接下来我们将从简介、安装到用法详解,... 目录一、Django 简介 二、Django 的安装教程 1. 创建虚拟环境2. 安装Django三、创

基于Python编写自动化邮件发送程序(进阶版)

《基于Python编写自动化邮件发送程序(进阶版)》在数字化时代,自动化邮件发送功能已成为企业和个人提升工作效率的重要工具,本文将使用Python编写一个简单的自动化邮件发送程序,希望对大家有所帮助... 目录理解SMTP协议基础配置开发环境构建邮件发送函数核心逻辑实现完整发送流程添加附件支持功能实现htm

Java集合中的链表与结构详解

《Java集合中的链表与结构详解》链表是一种物理存储结构上非连续的存储结构,数据元素的逻辑顺序的通过链表中的引用链接次序实现,文章对比ArrayList与LinkedList的结构差异,详细讲解了链表... 目录一、链表概念与结构二、当向单链表的实现2.1 准备工作2.2 初始化链表2.3 打印数据、链表长

Python如何调用另一个类的方法和属性

《Python如何调用另一个类的方法和属性》在Python面向对象编程中,类与类之间的交互是非常常见的场景,本文将详细介绍在Python中一个类如何调用另一个类的方法和属性,大家可以根据需要进行选择... 目录一、前言二、基本调用方式通过实例化调用通过类继承调用三、高级调用方式通过组合方式调用通过类方法/静

Java异常捕获及处理方式详解

《Java异常捕获及处理方式详解》异常处理是Java编程中非常重要的一部分,它允许我们在程序运行时捕获并处理错误或不预期的行为,而不是让程序直接崩溃,本文将介绍Java中如何捕获异常,以及常用的异常处... 目录前言什么是异常?Java异常的基本语法解释:1. 捕获异常并处理示例1:捕获并处理单个异常解释: