因工作需求,现在需要在python中调用jar包,并运行Java代码,一直报错,找不到那个类,上图:
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("WroldToHTML")
# 实例化java对象
javaInstance = javaClass()
# ③、调用java方法
javaInstance.main()
# ④、关闭jvm:jvm随着python程序的退出而结束
jpype.shutdownJVM()
运行后:
报错说找不到"WroldToHTML"这个类
于是我就去Java代码输出这个类的长类名:
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()));
}
}
输出结果就是WroldToHTML
不知道哪里出错了,希望有大佬可以指点一下