gpt4 book ai didi

java.lang.UnsatisfiedLinkError 即使设置 -Djava.library.path

转载 作者:行者123 更新时间:2023-11-29 03:31:11 24 4
gpt4 key购买 nike

我正在将一个库加载到我的 Java 代码中。我已将库放在 sytem 32 文件夹中,并且还设置了 -Djava.library.path。

早些时候这段代码正在运行

try{


System.loadLibrary("resources/TecJNI");

System.out.println("JNI library loaded \n");
}
catch(UnsatisfiedLinkError e){
System.out.println("Did not load library");
e.printStackTrace();
}

但是从上周开始显示

java.lang.UnsatisfiedLinkError: no resources/TecJNI in java.library.path.

这是我在 Java 代码中加载的 dll 的一些文件权限问题,还是其他应用程序正在使用的 dll。

此外,我正在运行的所有其他正在运行的应用程序在不同的工作区中使用和加载相同的 dll 现在都没有运行。

有人可以推荐我吗?

编辑:我正在使用 -

Djava.library.path="${workspace_loc}/org.syntec.ivb.application/resources;${env_var:PATH}"

在我的 eclipse vm 参数中。我认为它正在使用这个。

最佳答案

在 jvm 中加载库时,我喜欢将库复制到临时目录,然后从临时目录加载它们。这是代码:

private synchronized static void loadLib(String dllPath,String libName) throws IOException {
String osArch = System.getProperty("os.arch").contains("64")?"_X64":"_X86";
String systemType = System.getProperty("os.name");
String libExtension = (systemType.toLowerCase().indexOf("win") != -1) ? ".dll"
: ".so";
String libFullName = libName+osArch+ libExtension;
String nativeTempDir = System.getProperty("java.io.tmpdir");

InputStream in = null;
BufferedInputStream reader = null;
FileOutputStream writer = null;

File extractedLibFile = new File(nativeTempDir + File.separator
+ libFullName);
if (!extractedLibFile.exists()) {
try {
in = new FileInputStream(dllPath+ File.separator+
libFullName);
reader = new BufferedInputStream(in);
writer = new FileOutputStream(extractedLibFile);

byte[] buffer = new byte[1024];

while (reader.read(buffer) > 0) {
writer.write(buffer);
buffer = new byte[1024];
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (in != null)
in.close();
if (writer != null)
writer.close();
}
}
System.load(extractedLibFile.toString());
}

关于java.lang.UnsatisfiedLinkError 即使设置 -Djava.library.path,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18203075/

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