gpt4 book ai didi

java - 线程中出现异常 "main"java.lang.UnsatisfiedLinkError : no indri_jni in java. library.path

转载 作者:行者123 更新时间:2023-12-01 12:40:32 24 4
gpt4 key购买 nike

我正在开发狐猴工具,但运行时遇到一些问题。

当我执行代码时,java 提示

Exception in thread "main" java.lang.UnsatisfiedLinkError: no indri_jni in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1886)
at java.lang.Runtime.loadLibrary0(Runtime.java:849)
at java.lang.System.loadLibrary(System.java:1088)
at lemurproject.indri.indriJNI.<clinit>(indriJNI.java:109)
at lemurproject.indri.IndexEnvironment.<init>(IndexEnvironment.java:39)
at indritest.main(indritest.java:9)

这是我的代码

    import lemurproject.indri.*;
public class indritest
{
public static void main ( String[] args )
{
try {

String [] stopwords = {"a", "an", "the", "of"};
IndexEnvironment env = new IndexEnvironment();
env.setStoreDocs(true);
env.setStopwords(stopwords);
env.create("aaa");
env.addFile("trekfile.txt", "booomer.txt");
env.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

我正在使用jdk 1.8.0_11 x64位,Windows 7 旗舰版 x64 位,indri5.7 x64位,Eclipse Juno x64位。

...................................................... ...................................................... ...................................................... ......................编辑:-

我使用了RALF WAGNER给出的解决方案,现在我的控制台显示了这个错误。在我的控制台中打印 System.getProperty("java.library.path") 后,我得到了这个输出。 indri_jni.dll 已存在于 system32 文件夹中。

我的代码。

 import lemurproject.indri.*;
public class indritest
{
public static void main ( String[] args )
{
try {
System.out.println(System.getProperty("java.library.path"));
//System.loadLibrary("indri_jni");
String [] stopwords = {"a", "an", "the", "of"};
IndexEnvironment env = new IndexEnvironment();
env.setStoreDocs(true);
env.setStopwords(stopwords);
env.create("aaa");
env.addFile("trekfile.txt", "booomer.txt");
env.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

我的控制台输出。

  C:\Program Files\Java\jdk1.8.0_11\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\DMIX;C:\Program Files\Indri\Indri 5.7\bin;C:\Program Files\Java\jdk1.8.0_11\bin;.
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Program Files\Indri\Indri 5.7\bin\indri_jni.dll: Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1929)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1847)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1119)
at lemurproject.indri.indriJNI.<clinit>(indriJNI.java:109)
at lemurproject.indri.IndexEnvironment.<init>(IndexEnvironment.java:39)
at indritest.main(indritest.java:10)

最佳答案

除了项目中的 Java 类之外,您还使用 native 库,即不是用 Java 编写的库。您需要将 native 库添加到类路径中,并且可能需要在使用 IndexEnvironment 等任何类之前通过调用

加载该库
System.loadLibrary("<NAME OF THE LIBRARY>");

从堆栈跟踪中我猜测该库名为“indri_jni”,因此我认为在 Windows 上您应该将“indri_jni.dll”添加到 Windows 路径中。这通常包括应用程序的工作目录,因此您可能必须将库放在那里或将找到库的目录添加到路径环境变量中。

关于java - 线程中出现异常 "main"java.lang.UnsatisfiedLinkError : no indri_jni in java. library.path,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25146045/

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