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包但是你并没有得到