python中调用java函数

news2024/10/7 9:16:45

python中调用java函数

  • 1. 将java项目打包成jar(IDEA)
  • 2. 在python中调用jar

1. 将java项目打包成jar(IDEA)

【Ctrl+Shift+Alt+S】或者“File --> Project Structure --> Project Settings” 选择Artifacts选项卡,点击+号,选择"JAR --> From modules with dependencies…"
在这里插入图片描述

选择一个Main Class作为项目的启动文件,然后点OK
在这里插入图片描述
点击带下标的+号,选择Library Files将外部依赖jar都引入,然后点OK
在这里插入图片描述
在这里插入图片描述
选择"Build --> Build Artifacts… --> %Project Name%:jar --> Build",在out文件夹中会生成该项目的jar文件

2. 在python中调用jar

下载jpype

pip install jpype1

在python中:

import jpype

# 目标jar包的绝对路径
jar_path = 'D:/workplace/Auth/Auth/out/artifacts/Auth_jar2/Auth.jar' 

# jdk的虚拟环境jvm.dll的绝对地址,可以用jpype方法获取默认java的jvm.dll地址
# jvmPath = 'C:\Program Files\Java\jdk-1.8\jre\bin\server\jvm.dll'
jvmPath = jpype.getDefaultJVMPath()

# 加载java虚拟机
jpype.startJVM(jvmPath, '-ea', '-Djava.class.path=' + jar_path)

# 获取指定的java类,注意类名要从包名开始写
java_class = jpype.JClass('org.example.ITest') 

# 静态函数可以直接直接调用
java_class.static_func()
# 否则需要先实例化类
class_instance = java_class()
class_instance.dynmic_func()

# 关闭java虚拟机
jpype.shutdownJVM() 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/705950.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[Android Studio]1.2计数器

所有要改的代码如下: MainActivity代码: package com.example.code02;import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; imp…

FPGA第一个程序入门

1、使用正点原子的达芬奇开发板进行第一个FPGA程序设计。 2、启动vivado 2019.2。 3、 新建工程。 File--Project--New,选择RTL Project(寄存器传输级)。 4、选择器件。 add sources点击next, add constraints点击next&#x…

npm install安装依赖总结

node下载地址:https://nodejs.org/en/download/releases 。可以看到node版本、npm版本、node_module版本 1.npm的全局安装路径 查看默认值: npm get prefix 默认是C:\Users\你的用户名\AppData\Roaming\npm 、 可以通过 npm config prefix 更改全局…

mysql-数据迁移 及报错解决(ERROR 1290 (HY000)

文章目录 1. 物理迁移1. 迁移前,配置mysql的输出目录1. 查看mysql的输出目录2. 修改mysql的输出目录 2. 文件迁移 1. 物理迁移 1. 迁移前,配置mysql的输出目录 1. 查看mysql的输出目录 在安装MySQL的会限制了导入与导出的目录权限。只允许在规定的目录…

量子 能源,节能减排还是另有“端倪”?

光子盒研究院 前言:如今,量子技术早已走出实验室、广泛赋能电力、化学、医学等各个领域;创新赛道上,加速奔跑的量子产业,将带来无限可能。现在,光子盒特开启「量子」专栏,解读量子技术将为下游应…

基于matlab从3D医学图像中对脑肿瘤进行语义分割(附源码)

一、前言 此示例演示如何从 3D 医学图像中对脑肿瘤进行语义分割。 语义分割涉及用类标记 3-D 体积的图像或体素中的每个像素。此示例说明了如何使用 3-D U-Net 深度学习网络在磁共振成像 (MRI) 扫描中对脑肿瘤进行二进制语义分割。U-Net是一个快速&…

【MySQL学习笔记】(五) 表的约束

表的约束 1 什么是约束?2 空属性3 默认值4 列描述5 zerofill6 主键7 自增长8 唯一键9 外键 1 什么是约束? 约束是一种限制,它通过对表的行或列的数据做出限制,来确保数据的完整性、一致性。 真正约束字段的是数据类型&#xff0…

Electron快速入门

目录 前言 一、安装需知 二、安装electron 三、开始 3.1 修改package.json文件 3.2 创建main.js文件 3.3 启动预览窗口 3.4 显示内容 四、 热加载 五、主进程和渲染进程概念介绍 六、自定义原生菜单 6.1 自定义菜单 6.2 给菜单添加点击事件 6.3 抽离菜单定义 6.…

基于SpringBoot+vue的社区维修平台设计与实现

博主介绍: 大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

信号链噪声分析19

文章目录 概要整体架构流程技术名词解释技术细节小结 概要 提示:这里可以添加技术概要 用于定量表示 ADC 动态性能的常用指标有六个,分别是:SINAD(信纳比)、ENOB (有效位数)、SNR(信…

keil_arm 大端小端 寄存器 栈

.text .global _start _start: /* 单寄存器ldr r0,0x40000800ldr r1,0x12345678将r1寄存器中的值,写到r0指向的地址空间中[0x40000800]0x12345678str r1,[r0]将r0指向地址空间中的内容,读到目标寄存器r2中,r20x12345678 ldr r2,[r0] */ /*ldr…

前端设计模式学习

UML类图 1.工厂模式 设计原则:最重要的就是开放封闭原则,对扩展开放,对修改封闭。 1.工厂和类分离,解耦 2.可以扩展多个类 3.工厂的创建逻辑也可以自由扩展 工厂模式可以拆分成三个,分别是工厂方法模式、抽象工厂…

C/C++图形库EasyX保姆级使用教程(二) 图形化窗口设置以及简单图形的绘制

C/C图形库EasyX保姆级使用教程 第一章 Microsoft Visual Studio 2022和EasyX的下载及安装使用 第二章 图形化窗口设置以及简单图形的绘制 文章目录 C/C图形库EasyX保姆级使用教程前言一、窗口!1.如何生成一个图形化窗口?1.头文件2.初始化一个图形化窗口…

基于Java+Swing+Mysql人口普查登记系统

基于JavaSwingMysql人口普查登记系统 一、系统介绍二、功能展示1.主页2.新增人口信息3.查询人口信息 三、数据库四、其他系统实现五、获取源码 一、系统介绍 该系统实现了查看列表、新增人口信息、删除人口信息 运行环境:eclipse、idea、jdk1.8 二、功能展示 1.…

常州工学院数字图像处理及应用2022-2023第二学期实验报告 + 期末

《数字图像处理及应用》 课程 实验报告书 专业班级: 21计二 姓 名: 王梓权 学 号: 21030228 指导教师: 徐则中 计算机信息工程学院 《数字图像处理》实验 实验教学目的和要求 《数字图像处理》课程内容是一门综合…

Python MongoDB复习第一章

Python 可以在数据库应用程序中使用。 最受欢迎的 NoSQL 数据库之一是 MongoDB。 MongoDB MongoDB 将数据存储在类似 JSON 的文档中,这使得数据库非常灵活和可伸缩。 为了能够测试本教程中的代码示例,您需要访问 MongoDB 数据库。 您可以在 https:/…

论文学习笔记:增强学习应用于OS调度

【引子】周末,读了一篇同事推荐的论文《STUN: Reinforcement-Learning-Based Optimization of Kernel Scheduler Parameters for Static Workload Performance》,很有启发,遂加入个人思考编译成文。 从小型物联网设备到大型服务器&#xff0c…

VIM编辑器的命令使用总结

(该图由AI绘制 关注我 学习AI画图) 目录 一、VIM编辑器 1、vi概述 2、vim编辑器 3、vim编辑器的安装 4、vim编辑器的四种模式(重点) ☆ 命令模式 ☆ 编辑模式或输入模式 ☆ 末行模式 ☆ 可视化模式(了解&am…

Apache Doris (十三) :数据存储模型之Duplicate数据存储模型

进入正文之前,欢迎订阅专题、对博文点赞、评论、收藏,关注IT贫道,获取高质量博客内容! 在某些多维分析场景下,数据既没有主键,也没有聚合需求,只需要将数据原封不动的存入表中,数据有…

神经网络初谈

文章目录 简介神经网络的发展历程神经网络的初生神经网络的第一次折戟神经网络的新生,Hinton携BP算法登上历史舞台命途多舛,神经网络的第二次寒冬神经网络的重生,黄袍加身,一步封神神经网络的未来,众说纷纭其他时间点 …