文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python调用Java可执行jar包问题

2022-12-08 20:57

关注

基于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步代码去掉。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯