gpt4 book ai didi

java - 在 Java 中加载 .DLL

转载 作者:可可西里 更新时间:2023-11-01 09:28:26 36 4
gpt4 key购买 nike

我想在 Eclipse 中调用一个 .DLL 方法。这是我的代码:

class TestJNI1 {
public native void LireNoVersion();
public void a() {
System.loadLibrary("tttt.dll");
LireNoVersion();
}

}

public GlobalAction() {
this.setBackground(GlobalPreferences.PANEL_BACKGROUND_COLOR);
new TestJNI1().a();
}

问题是我在编译时遇到这个错误:

Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: Expecting an absolute path of the library: tttt.dll  at java.lang.Runtime.load0(Unknown Source)  at java.lang.System.load(Unknown Source)

我已经尝试过:

  • 在 Eclipse 中设置参数
  • 移动到项目的根目录和 System32 文件夹
  • 在 Eclipse 中的 native 库位置添加了文件夹路径
  • 在 Windows 中更改 %PATH%
  • 给出绝对路径作为参数
  • 尝试使用“tttt.dll”、“./tttt.dll”和“.tttt.dll”
  • 调用 System.loadLibrary(...)System.load(...)

更新

我尝试打印 java.library.path 并获取路径。我将 dll 放在这个路径中,现在错误消息更加困惑:

Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: D:\My\Exact\Path\tttt.dll: Can't find dependent libraries

这是打印路径的代码:

String property = System.getProperty("java.library.path");
StringTokenizer parser = new StringTokenizer(property, ";");
while (parser.hasMoreTokens()) {
System.err.println(parser.nextToken());
}

最佳答案

第一个问题是找不到 dll,因为它不在路径中。

第二个问题是它无法找到您正在使用的dll 的依赖项。您的选择似乎是

  1. 将所有依赖库复制到dll位置
  2. 从原始 dll 位置运行您的代码。

关于java - 在 Java 中加载 .DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33642064/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com