在运行时访问jacob-1.18-x86.dll的问题



解决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的文件夹中。希望这种解决方案对他人有所帮助。

在我查看加载DLL的源代码之前,对此进行了一些努力。在调用雅各布库中的任何方法之前添加以下代码。这将指示雅各布从指定的路径加载DLL,而不是在Java.library.path。

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

适用于1.20版。但也应该适用于较旧版本。

最新更新