jpype 调用 jar 包 环境:python 3.6.8 jpype1 0.6.3 jdk 1.8 “”" 基本的开发流程如下: ①、使用jpype开启jvm ②、加载java类 ③、调用java方法 ④、关闭jvm(不是真正意义上的关闭,卸载之前加载的类) “”"
①、使用jpype开启虚拟机(在开启jvm之前要加载类路径)
加载刚才打包的jar文件
path = r"C:UsersAdministratorDesktopxxx.jar" jarpath = os.path.join(os.path.abspath(‘views’), path)
获取jvm.dll 的文件路径
jvmPath = jpype.getDefaultJVMPath()
jvmPath = ‘C:/Program Files/Java/jdk1.8.0_291/jre/bin/server/jvm.dll’
开启jvm
jpype.startJVM(jvmPath, “-ea”, “-Djava.class.path=%s” % (jarpath))
②、加载java类(参数是java的长类名)
javaClass = jpype.JClass(“com.it.zty.JwtUtils”)
实例化java对象
javaInstance = javaClass()
③、调用java方法,由于我写的是静态方法,直接使用类名就可以调用方法
user_id = javaClass.getUserId(token)
④、关闭jvm
jpype.shutdownJVM() 注意的是:python 的位数 和 jdk 的位数一定要保持相同,否则会抛出 Process finished with exit code -1073741819 (0xC0000005) 的错误。