java.lang.UnsatisfiedLinkError: no jacob-1.14.3-x64 in java.library.path问题的解决方法

来源:互联网 发布:哈密尔顿回路算法c 编辑:程序博客网 时间:2024/06/11 12:01

首先jacob是用来将word转成html的一个工具类库,在项目中使用过程中出现错误

Exception in thread "main" java.lang.UnsatisfiedLinkError: no jacob-1.14.3-x64 in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1738)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1028)
at com.jacob.com.LibraryLoader.loadJacobLibrary(LibraryLoader.java:184)
at com.jacob.com.JacobObject.<clinit>(JacobObject.java:108)
at Test.wordToHtml(Test.java:10)
at Test.main(Test.java:41)

意思是在jdk下没有找到jacob对应的dll文件。

解决办法:

1. 首先进入jacob的网站现在最新的jacob包(这个可以使用当前版本的jacob,这里我做了版本升级),并将zip包中的dll文件放置到X:\Windows\system32目录下,X为你的操作系统盘符,根据自己的系统版本放置不同的dll文件,名称上有写的

2. 将dll文件放到当前JDk和jre的lib目录中,然后测试问题解决。

测试程序

public static boolean wordToHtml(String inPath, String toPath) {
// 启动word
ActiveXComponent axc = new ActiveXComponent("Word.Application");
boolean flag = false;
try {
// 设置word不可见
axc.setProperty("Visible", new Variant(false));
Dispatch docs = axc.getProperty("Documents").toDispatch();
// 打开word文档
Dispatch doc = Dispatch.invoke(docs, "Open", Dispatch.Method, new Object[] { inPath, new Variant(false), new Variant(true) }, new int[1]).toDispatch();
// 作为html格式保存到临时文件
Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] { toPath, new Variant(8) }, new int[1]);
Variant f = new Variant(false);
Dispatch.call(doc, "Close", f);
flag = true;
return flag;
} catch (Exception e) {
e.printStackTrace();
return flag;
} finally {
axc.invoke("Quit", new Variant[] {});
}
}
public static void main(String[] args) {
wordToHtml("D://Codes//Word2HTML//test.doc", "D://Codes//Word2HTML//test.htm");
}

0 0