软件编程
位置:首页>> 软件编程>> java编程>> Python调用Java可执行jar包问题

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

Python调用Java可执行jar包问题

3.点击选择想要生成jar包的类,这里我选择testFunction.class。

注意Directory for meta-inf/manifest.mf的位置不要选择默认的,最好选择项目根目录。

我选择默认的会找不到生成的jar包的位置。

Python调用Java可执行jar包问题

4.点击Build->Build Artifacts后选择对应的Artifact,并点击Build即生成成功。

Python调用Java可执行jar包问题

5.生成的jar包

Python调用Java可执行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

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com