python如何调用java的jar包

2025-06-22 17:50
文章标签 python java 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

相关文章

SpringBoot中4种数据水平分片策略

《SpringBoot中4种数据水平分片策略》数据水平分片作为一种水平扩展策略,通过将数据分散到多个物理节点上,有效解决了存储容量和性能瓶颈问题,下面小编就来和大家分享4种数据分片策略吧... 目录一、前言二、哈希分片2.1 原理2.2 SpringBoot实现2.3 优缺点分析2.4 适用场景三、范围分片

Java实现自定义table宽高的示例代码

《Java实现自定义table宽高的示例代码》在桌面应用、管理系统乃至报表工具中,表格(JTable)作为最常用的数据展示组件,不仅承载对数据的增删改查,还需要配合布局与视觉需求,而JavaSwing... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

一文详解Java Stream的sorted自定义排序

《一文详解JavaStream的sorted自定义排序》Javastream中的sorted方法是用于对流中的元素进行排序的方法,它可以接受一个comparator参数,用于指定排序规则,sorte... 目录一、sorted 操作的基础原理二、自定义排序的实现方式1. Comparator 接口的 Lam

SpringBoot开发中十大常见陷阱深度解析与避坑指南

《SpringBoot开发中十大常见陷阱深度解析与避坑指南》在SpringBoot的开发过程中,即使是经验丰富的开发者也难免会遇到各种棘手的问题,本文将针对SpringBoot开发中十大常见的“坑... 目录引言一、配置总出错?是不是同时用了.properties和.yml?二、换个位置配置就失效?搞清楚加

Java Stream的distinct去重原理分析

《JavaStream的distinct去重原理分析》Javastream中的distinct方法用于去除流中的重复元素,它返回一个包含过滤后唯一元素的新流,该方法会根据元素的hashcode和eq... 目录一、distinct 的基础用法与核心特性二、distinct 的底层实现原理1. 顺序流中的去重

利用Python脚本实现批量将图片转换为WebP格式

《利用Python脚本实现批量将图片转换为WebP格式》Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为... 目录简介1. python在图像处理中的应用2. WebP格式的原理和优势2.1 WebP格式与传统

SpringBoot集成LiteFlow工作流引擎的完整指南

《SpringBoot集成LiteFlow工作流引擎的完整指南》LiteFlow作为一款国产轻量级规则引擎/流程引擎,以其零学习成本、高可扩展性和极致性能成为微服务架构下的理想选择,本文将详细讲解Sp... 目录一、LiteFlow核心优势二、SpringBoot集成实战三、高级特性应用1. 异步并行执行2

Python Pillow 库详解文档(最新推荐)

《PythonPillow库详解文档(最新推荐)》Pillow是Python中最流行的图像处理库,它是PythonImagingLibrary(PIL)的现代分支和继承者,本文给大家介绍Pytho... 目录python Pillow 库详解文档简介安装核心模块架构Image 模块 - 核心图像处理基本导入

怎么用idea创建一个SpringBoot项目

《怎么用idea创建一个SpringBoot项目》本文介绍了在IDEA中创建SpringBoot项目的步骤,包括环境准备(JDK1.8+、Maven3.2.5+)、使用SpringInitializr... 目录如何在idea中创建一个SpringBoot项目环境准备1.1打开IDEA,点击New新建一个项

Java Web实现类似Excel表格锁定功能实战教程

《JavaWeb实现类似Excel表格锁定功能实战教程》本文将详细介绍通过创建特定div元素并利用CSS布局和JavaScript事件监听来实现类似Excel的锁定行和列效果的方法,感兴趣的朋友跟随... 目录1. 模拟Excel表格锁定功能2. 创建3个div元素实现表格锁定2.1 div元素布局设计2.