python调用jar包中的类

1、首先确定环境安装了jdk并且配置了环境变量

2、安装Jpype1,可以通过pip.exe install jpype1命令安装也可以使用pycharm安装

        pycharm安装方式:File-》setting

        接下来要安装numpy,pip install numpy。

3、代码示例:

import jpype

jar_path1="D:/gitProgram/test.jar"
jpype.startJVM(jpype.getDefaultJVMPath(), "-ea", "-Djava.class.path=%s"%(jar_path1))#启动jvm

AccessTokenQuery = jpype.JClass("com.test.query.AccessTokenQuery") #加载类
GetApiService= jpype.JClass("com.test.service.GetApiService")#加载类

query = AccessTokenQuery()#创建类的实例,可以调用类里边的方法
query.setApiKey("123456")
query.setApiSecurity("5555666666")

getApiService = GetApiService()
getApiService .getAccessToken(query)

jpype.shutdownJVM() #关闭jvm

4、如果某个文件夹中有很多个jar包需要引用,如果一个个写地址引用就很麻烦,可以使用读取文件名称拼接路径的方法

 

 5、调用方法和启动JMV报错的解决方法

        a、提示jpype找不到startJVM方法:

                先排查java安装目录下是否有生成jre文件夹,如果没有则需要执行命令去生成

                1、打开命令行工具,但是一定要注意:以管理员身份运行,否则会导致安装失败

                2、输入命令:bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre

                3、再去java目录下应该可以看到生成的jre文件夹了

        b、提示找不到某个类,但是已经引用了对应的jar包,可能导致该错误的原因

                1、确定jar包的存放路径中不能存在中文,否则会导致错误

                2、开启JMV虚拟机后,例如jar包中query文件夹下有多个.class文件,需要指定到具体类名,不能写成com.test.query.*

                AccessTokenQuery = jpype.JClass("com.test.query.AccessTokenQuery")

                3、执行过程中提示:java.lang.NoClassDefFoundError:java.lang.NoClassDefFoundError:xxx.xxxx.xxxx,导致该错误的原因可能是研发给的jar包不全,jar包中还引用了其他jar包但是你并没有得到

                

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值