python中调用jar包找不到类报错
因工作需求,现在需要在python中调用jar包,并运行Jar包类中的方法,程序一直报错,找不到那个类,python中的代码:
import jpype
if __name__ == '__main__':
"""
①、使用jpype开启jvm
②、加载java类
③、调用java方法
④、关闭jvm
"""
# ①、使用jpype开启虚拟机(在开启jvm之前要加载类路径)
# 加载刚才打包的jar文件
jar_path = r'E:\Program Files\FineDo\代码区\WorldtoHTML\target\WorldtoHTML-1.0-SNAPSHOT.jar'
# 获取jvm.dll 的文件路径
jvmPath = jpype.getDefaultJVMPath()
# 启动jvm
jpype.startJVM(jvmPath, "-ea", "-Djava.class.path=%s" % jar_path)
# ②、加载java类(参数是java的长类名)
javaClass = jpype.JClass("worldToHTML.WroldToHTML")
# 实例化java对象
javaInstance = javaClass()
# ③、调用java方法
javaInstance.main()
# ④、关闭jvm:jvm随着python程序的退出而结束
jpype.shutdownJVM()
运行结果报错:
TypeError: Class worldToHTML.WroldToHTML is not found
报错说找不到这个类,于是我去Java代码中去输出我这个类的长类名:
package worldToHTML;
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
public class WroldToHTML {
public void transfer(String inputFileAddress,String outputFileAddress) {
Document doc = new Document();
doc.loadFromFile(inputFileAddress);
doc.saveToFile(outputFileAddress, FileFormat.Html);
doc.dispose();
}
public static void main(String[] args) {
WroldToHTML wroldToHTML = new WroldToHTML();
System.out.println((wroldToHTML.getClass().getName()));
}
}
运行结果为:
但是python中运行结果一直报错,不知怎么解决,求告知:
不要用python直接调用java的代码
你应该调用java编写好的dll,或者调用python下对应功能的类库