java - 如何在 Java 中配置 .dll 文件?

标签 java dll classpath jacob

我正在使用 Jacob我的 Java 应用程序中的 jar 文件。

此 Jacob jar 文件附带一个 .dll 文件。我已将 Jacob jar 文件添加到我的类路径中。但是当我执行我的应用程序时,出现运行时错误

"couldn't load jacob-1.15-M3-x86.dll file"

如何加载这个 .dll 文件?

已编辑:=========================================== ====================================

我已将“路径”环境变量设置为包含我的 .dll 文件的目录,并按如下方式加载该 .dll 文件

static {
    System.loadLibrary("jacob-1.15-M3-x86.dll");
}

但是出现如下错误

    java.lang.UnsatisfiedLinkError: no jacob-1.15-M3-x86.dll in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1734)
    at java.lang.Runtime.loadLibrary0(Runtime.java:823)
    at java.lang.System.loadLibrary(System.java:1028)
    at TemplateClass.TemplateClass.<clinit>(TemplateClass.java:14)

最佳答案

“jacob-1.15-M3-x86.dll”需要位于您的操作系统可以找到它的地方。您在这里有几个选择:

  • 您可以将 .dll 文件放在您启动应用程序的目录中。如果你有一个批处理脚本来启动你的应用程序,它就是那个目录。如果您从某种应用程序服务器开始,它通常是“bin”目录。

  • 您可以将 .dll 文件放在 %PATH% 环境变量中的某个位置。我可能更容易更新您的 PATH 环境变量以包括包含您的 .dll 文件的目录。

  • 另一种选择是将您的 .dll 放入 %SystemRoot%\system32 目录中。通常这是“C:\Windows\system32”。通常不推荐使用此选项,除非它是像 MSCVRT 运行时这样的共享库。

您可能遇到的另一个问题。如果 .dll 被编译为 32 位,那么您必须在 32 位 Java 运行时中运行。同样,如果它是 64 位 .dll,则需要在 64 位 JRE 中运行。

关于java - 如何在 Java 中配置 .dll 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2082026/

相关文章:

java - 运行helloworld时出错+classpath问题

java - 什么是类路径容器?

java - Android 谷歌地图显示灰色瓷砖,但只有当它从 Eclipse 导出时

java - 在 java GUI 中显示 excel 页面

java - 为什么 JavaFX 低级绑定(bind)不使用 lambda 和函数式接口(interface)?

windows - Win32 32位进程加载64位kernel32.dll

java - 多线程应用程序中编译时和运行时类路径不匹配的原因是什么?

java - 将 TaskExecutor 与 PublishSubscribeChannel 结合使用

delphi - 我应该更改我的图像库吗?

dll - Oleview 错误 "error loading type library"?