我已经整理了一个程序,其中一个方法使用Jacob。当我在编译器中处理程序时,如果我将jacob-1.18-x64.dll
文件放在与我正在处理的项目相同的文件夹中,我只能使Jacob库工作。这很好用,直到我尝试使用Launch4j将程序包装到.exe
文件中。当我单击程序的。exe
版本时,它会在到达使用Jacob的方法时抛出Exception in thread "main" java.lang.UnsatisfiedLinkError: no jacob-1.18-x64 in java.library.path
错误。我知道问题是因为它无法找到库,但我不确定如何将此库连接到.exe
文件。如何运行此.exe
文件并包含Jacob库?正如我之前提到的,为了使程序在IDE中工作,我不得不将.dll
移动到与项目相同的文件夹中。因此,我尝试使用.exe
文件执行相同操作,但即使在同一文件夹中,它也不起作用。为了让这个工作,我还需要做些什么?
答案 0 :(得分:0)
您必须在JVM命令行上设置java.library.path
,如下所示:
java -Djava.library.path=jacob-1.18-x64.dll -cp your_class path YourMainClass
我建议首先从命令行中弄清楚这样运行,然后找出如何将完全正常工作的命令行正确转换为Launch4j。
答案 1 :(得分:0)
Jacob v1.18调用System.loadLibrary(dllname)
加载DLL文件。
搜索规则基于系统属性java.library.path
(小心,在JVM启动后更改它是无用的)