在 运行 时间访问 jacob-1.18-x86.dll 时出现问题

Issue in accessing jacob-1.18-x86.dll at run time

解析 jacob-1.18-x86.dll 时出现问题,无法在 运行 时间访问 我可以成功编译程序。

SEVERE: Servlet.service() for servlet dispatcher threw exception
    java.lang.UnsatisfiedLinkError: no jacob-1.14.3-x64 in java.library.path
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
        at java.lang.Runtime.loadLibrary0(Runtime.java:870)
        at java.lang.System.loadLibrary(System.java:1122)
        at com.jacob.com.LibraryLoader.loadJacobLibrary(LibraryLoader.java:184)
        at com.jacob.com.JacobObject.<clinit>(JacobObject.java:108)

Maven 依赖是:

<dependency>
    <groupId>net.sf.jacob-project</groupId>
    <artifactId>jacob</artifactId>
    <version>${jacob.version}</version>
</dependency>

<dependency> 
    <groupId>net.sf.jacob-project</groupId> 
    <artifactId>jacob</artifactId> 
    <version>1.14.3</version> 
    <classifier>x64</classifier> 
    <type>dll</type> 
</dependency> 

您是否将 JACOB .dll 文件放入您的运行时库路径? 例如。在文件夹中:

/Java/jdk/jre/bin

/Java/jdk/jre/lib/ext/jacob-1.18

现在,当我添加以下文件时问题已解决:

jacob-1.14.3-x64.ddl 和 jacob-1.14.3-x84.dll

文件夹内:

/Java/jdk/jre/bin 和 /Java/jdk/jre/lib/ext

我已经通过在 System.getProperty("java.library.path") 的第一个文件夹中添加 jacob-1.19-x64.dll 文件来解决我的问题。

只是 system.out 属性 并复制文件夹中的 .dll 文件。

并非总是可以将 dll 添加到 java.library.path 的文件夹中。希望这个解决方案对其他人有帮助。

在查看 source code for loading the dll 之前,我曾为此苦苦思索过。在调用 Jacob 库中的任何方法之前添加以下代码。这将指示 Jacob 从指定路径加载 dll,而不是在 java.library.path.

中查找

System.setProperty("jacob.dll.path", "/path/to/your/jacob/jacob-1.18-x86.dll");

适用于 1.20 版。但也适用于旧版本。