公司有个 java 的 spring 项目,使用 maven 打成 jar 包,使用 python 调用加载的时候提示找不到类,有过调用 spring 项目经验的大佬给看下什么问题?
此时当调用到 CryptUtil = jpype.JClass("com.finance.micro.api.util.CryptUtil") 这个加载类的时候就报错,

import jpype
import os,json

path = r"D:\xx\xx\wjctest\wjctest.jar"
jar_path = os.path.join(os.path.abspath("."), path)

# 获取jvm.dll的文件路径
jvmPath = jpype.getDefaultJVMPath()
print("获取的jvm路径", jvmPath)

# 启动jvm
jpype.startJVM(jvmPath, "-Dfile.encoding=UTF8", "-ea", "-Djava.class.path=%s" % jar_path)
print("看到了")

# 加载java类(参数是java的长类名)
CryptUtil = jpype.JClass("com.*.*.api.util.CryptUtil")
# 库名加*
ChannelLoginDTO = jpype.JClass("com.*.*.dto.ChannelLoginDTO")
privateKey = "这里是私钥";
publicKey = "这里是公钥";

instance = ChannelLoginDTO()
instance.setChannelCode("C20220928180834695958");
instance.setCustomerName("123");
instance.setPhone("18511552233");
instance.setCertNo("612823199203631536");

params = CryptUtil.buildRequest(json.loads(x), privateKey, publicKey)
print("打印的参数",params)

# 关闭jvm
jpype.shutdownJVM()

具体的报错如下:
Traceback (most recent call last):
File "D:/microFinanceProject/qa-test/test.py", line 16, in
CryptUtil = jpype.JClass("com.finance.micro.api.util.CryptUtil")
File "D:\Program Files\Anaconda3\lib\site-packages\jpype_jclass.py", line 99, in new
return _jpype._getClass(jc)
TypeError: Class com.finance.micro.api.util.CryptUtil is not found

后来自己如果单独写一个 java 项目,不使用 spring 和 maven 这种框架,打成的 jar 调用就没问题,spring 项目使用 maven 打包 jar,调用的时候就有问题,哪位老板成功用 python 调用 maven 打的 spring 项目的 jar 包,能否贴个示例或者发下注意事项?


↙↙↙阅读原文可查看相关链接,并与作者交流