Python调用Java可执行jar包问题
作者:wzcd 发布时间:2021-06-02 10:26:26
标签:Python,Java,可执行,jar包
基于IDEA生成可执行jar包
1.编写class的代码,注意一定要有main()方法才可以生成jar包,main()方法可以没有内容。
例如:
public class testFunction {
public static void main(String[] args) {
}
public static void send() {
System.out.println("i use message");
}
}
2.点击file->project structure
3.点击选择想要生成jar包的类,这里我选择testFunction.class。
注意Directory for meta-inf/manifest.mf的位置不要选择默认的,最好选择项目根目录。
我选择默认的会找不到生成的jar包的位置。
4.点击Build->Build Artifacts后选择对应的Artifact,并点击Build即生成成功。
5.生成的jar包
Python如何调用jar
1.需要下载jpype,windows+R输入cmd进入命令提示符,将路径转到jpype所在目录,执行pip install jpype文件名。
2.具体操作方法请自行搜索,能找到详细步骤。
代码如下
def sendMessage():
# 1.加载jar包
jarpath = os.path.join(os.path.abspath("."),"(填写你的jar包的filepath)\\wit_test.jar")
# 2.获取jvm.dll 的文件路径
jvmPath = jpype.getDefaultJVMPath()
# 3.开启jvm
jpype.startJVM(jvmPath, "-ea", "-Djava.class.path=%s" % (jarpath))
# 4.加载java类(参数是java的长类名)
javaClass = jpype.JClass("testFunction")
# 5.实例化java对象
javaInstance = javaClass()
# 6.调用java方法,由于我写的是静态方法,直接使用类名就可以调用方法
javaInstance.send()
# 7.关闭jvm
jpype.shutdownJVM()
pass
如果只需调用一次jar包,上述代码可行。
如果需要多次调用会出现重新启动失败的问题,那么解决办法是把代码放在main()函数中,前5步代码初始化完毕后,每次只循环使用第6步代码。
第7步代码去掉。
来源:https://blog.csdn.net/strongerme_/article/details/123164163


猜你喜欢
- 前言Java中共有八种基本数据类型:byte,int,short,long,float,double,char,boolean。计算机中的基
- 实现原理: 长连接的维持,是要客户端程序,定时向服务端程序,发送一个
- 一.EventBus概述 1.EventBus的三要素EventBus有三个主要的元素需要我们先了解一下:Event:事件,可以是任意类型的
- 项目需要去调用.NET的WebSrevice,本身是Java,研究了半天,终于有些头绪,记下来。1,新建.NET WebService。只在
- 一、Spring Boot 、 Spring MVC 、Spring对比首先你需要明白一件事情:Spring Boot项目目的并不是替换Sp
- 简介使用RecyclerView实现网格布局,实现手机界面应用列表 效果效果如下图: 详细代码XML布局文件在布局中使用
- 前言spring 对bean的创建过程做了很完整的封装。但是提供了非常多的扩展接口,供我们使用。这一节主要是实现spring提供的获取 be
- SpringBoot中的SpringMVC配置功能都是在WebMvcAutoConfiguration类中,xxxxAutoConfigur
- 摘要:本文演示如何构建起一个优秀的后端接口体系,体系构建好了自然就有了规范,同时再构建新的后端接口也会十分轻松。一个后端接口大致分为四个部分
- 本文实例讲述了C#禁用双击窗体图标关闭窗体的方法。分享给大家供大家参考。具体实现方法如下:[DllImport("user32.d
- Stream.Read 方法当在派生类中重写时,从当前流读取字节序列,并将此流中的位置提升读取的字节数。语法:public abstract
- Kotlin this详解及实例为了表示当前函数的接收者(receiver), 们使用this表达式:在类的成员函数中,this指向这个类的
- 锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等等 ) 。这些
- 前言本文主要给大家介绍了关于Spring4自定义@Value功能的相关内容,使用的Spring版本4.3.10.RELEASE,下面话不多说
- 冒泡排序算法演示图:public static void bubbleSort(int[] array) { &
- 一、什么是桥接模式:桥接,顾名思义,就是用来连接两个部分,使得两个部分可以互相通讯,桥接模式的作用就是为被分离的抽象部分和实现部分搭桥。在现
- 一、概述 在C和C++语言中都有assert关键,表示断言。在Java中,同样也有assert关键字,表示断言,用法和含义都差不多
- 说明本项目采用 maven 结构,主要演示了 spring mvc + mybatis,controller 获取数据后以json 格式返回
- 下面讲解以下在使用listview时最常见的几个问题。1.如何改变item的背景色和按下颜色listview默认情况下,item的背景色是黑
- 一直到大四才开始写自己的第一篇博客,说来实在有点羞愧。今天写了关于排序的算法题,有插入排序,冒泡排序,选择排序,以下贴上用JAVA实现的代码