python中调用java函数

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.hqwc.cn/news/2383.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Maven高级操作--分模块设计、聚合、继承和私服

一、分模块设计与开发 1.1 分模块设计 问题:当项目做大做强的时候,前面的基础Spring开发的框架都无法满足java大型项目的维护和复用,而且团队合作也会造成较大的困难。所以就需要分模块设计:将项目按照功能拆分成若干个子模块&a…

uniapp小程序订阅消息推送+Thinkphp5后端代码教程示例

记录一下通过uniapp开发小程序消息推送的实例,配合后端tp推送,之前写的项目是微信小程序而且后端是原生php,这次通过项目记录一下 目录 回顾access_token获取规则以及思路 第一步:设计前端触发订阅事件第二步:设计将to…

bochs编译安装

编译命令 ./configure --prefix‘/usr/local/bochs2.7’ --enable-debugger --enable-disasm --enable-iodebug --enable-x86-debugger --with-x --with-x11 make sudo make install 配置文件 bochsrc # configuration file generated by Bochs plugin_ctrl: unmapped1, biosde…

设计消息模块的业务层Web层

目录 业务层 一、定义Message业务接口 二、定义Message业务实现类 Web层 一、获取分页消息列表 二、根据ID查询消息 三、把未读消息更新成已读消息 四、删除消息 业务层 一、定义Message业务接口 创建 MessageService.java 类 public interface MessageService {pub…

C++【位图/布隆过滤器—海量数据处理】

文章目录 一、位图(1)位图概念介绍(2)简单模拟实现(3)位图应用 二、布隆过滤器(1)关于布隆过滤器概念及介绍(2)布隆过滤器的使用场景(3&#xff0…

性能测试的具体流程

文章目录 1. 确定性能测试目标及指标2. 设计测试场景3. 配置测试环境4. 编写测试脚本5. 进行性能测试6. 分析测试结果7. 提出优化建议8. 进行反复测试和调整 以下是一个基本的性能测试过程,旨在帮助了解性能测试的具体流程和步骤。 1. 确定性能测试目标及指标 首先…

多层感知机与深度学习算法概述

多层感知机与深度学习算法概述 读研之前那会儿我们曾纠结于机器学习、深度学习、神经网络这些概念的异同。现在看来深度学习这一算法竟然容易让人和他的爸爸机器学习搞混…可见深度学习技术的影响力之大。深度学习,作为机器学习家族中目前最有价值的一种算法&#…

JAVA开发(记一次504 gateway timeout错误排查过程)

一、问题与背景: 最近在发布一个web项目,在测试环境都是可以的,发布到生产环境通过IP访问也是可以的,但是通过域名访问就出现504 gateway timeout。通过postman去测试接口也是一样。ip和端口都可以通,域名却不行&…

MySql高级篇-006 MySQL架构篇-02MySQL的数据目录:数据库下的主要目录结构、文件系统如何存储数据

第02章_MySQL的数据目录 1.MySQL8的主要目录结构 # 查询名称叫做mysql的文件目录都有哪些[rootatguigu07 ~]# find / -name mysql安装好MySQL 8之后,我们查看如下的目录结构: 1.1 数据库文件的存放路径 MySQL数据库文件的存放路径:/var/…

商业综合体智能管理系统

自主研发的商业综合体智能管理系统和智能硬件,并针对行业不同需求,推出了不同行业的创新解決方案和服务。该系统能够提高商业综合体的管理效率和安全性,为商业综合体的经营和服务增加更多的价值。全自动智能完成无需人工干预,从而…

基于HTML5的手术室信息管理系统的设计与实现(源码+文档+数据库)

本文通过对现有手术室信息管理系统分析,设计了一套基于 HTML的手术室信息管理系统,实现了患者信息、手术记录及术后随访等功能,提高了手术室工作效率。 本系统实现了患者基本资料的录入及基本信息的查询,提供了术前准备情况及术中…

计算机网络—网络层

文章目录 网络层服务虚电路网络数据报网络 IPv4IP数据报IP数据报分片 IP编址(IPv4)有类IP地址IP子网划分子网掩码 无类IP地址(CIDR)DHCPNATICMP协议 路由算法链路状态路由算法距离向量路由算法不同子网之间的路由算法学习RIP协议O…