首页 > 编程语言 > 详细

亲自有效---python 调用jar

时间:2020-01-15 20:43:25      阅读:78      评论:0      收藏:0      [点我收藏+]
#-*-coding:utf-8-*-
import jpype
from jpype import *
import os.path

jarpath = os.path.abspath(‘.‘)
#这个函数用来获取当前 python 脚本所在的绝对路径
aa=jarpath + ‘\JpypeDemo.jar‘
print(aa)
jvm_path = jpype.getDefaultJVMPath() #获取当前系统JDK的路径
print(jvm_path)
# startJVM("/usr/local/java/jdk1.8.0_181/jre/lib/amd64/server/libjvm.so","-ea","-Djava.class.path=%s" % (jarpath + ‘/JpypeDemo.jar‘))          
# #这个 startJVM 函数作用是加载 Java 虚拟机,其第一个参数必须是你的 Java 的 jdk 的安装位置,每个人的安装位置不一样,
# 我的地址就是上面加粗的那一段(注!!!有的教程上说可以直接通过 getDefaultJVMPath() 函数获取 Java 地址,
# 不建议用!不建议用!不建议用!因为这个函数获得的地址很有可能是电脑自带的 oracle 版的 Java,
# 并非我们自己安装的 Java,这样由于环境变量的问题会导致报错!);  第二个参数意译不明,反正加上就对了 ; 
# 第三个参数是你打包好的 jar 包所在的绝对路径,可以看到我将 JpypeDemo.jar 和前面所得到的当前目录的路径结合起来。
jpype.startJVM(jvm_path,"-ea","-Djava.class.path=%s" % aa)
JDClass = JClass("demo1.JpypeDemo") #申请一个 Java 类(神奇~)

jd = JDClass
jprint = java.lang.System.out.println #申请 Java 输出类的输出函数
jprint( jd.sayHello(" waw ") ) #调用该类中的 sayHello 函数,并用 Java 输出函数打印 Java 返回值
jprint( str(jd.calc(2,4))) #调用该类中的求和函数,并用 Java 输出函数打印 Java 返回值 要打印的为字符类型的值

#关闭 Java 虚拟机,可写可不写,不写会在程序结束时自动关闭
shutdownJVM()

亲自有效---python 调用jar

原文:https://www.cnblogs.com/longyi2020/p/12198438.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!