UnsatisfiedLinkError,但库在路径中

时间:2014-02-28 17:37:57

标签: java intellij-idea

我对此错误感到有点困惑。我是Java新手,错误看起来非常自我解释,但我检查了我的路径(甚至定义了我自己的路径),但仍然无法找到这个库。有什么我做错了吗?请参阅下面的目录屏幕截图和错误屏幕截图:

compiler error directory

更新

new error

更新2

如果我创建一个新的NetBeans项目,这可以正常工作。相同的代码和一切。如果我创建新的IntelliJ项目,我得到上面的错误。我必须在IntelliJ

中遗漏一些东西

更新3

找到解决方案。在IntelliJ中添加依赖项有点不同。谢谢大家的帮助。

http://www.jetbrains.com/idea/webhelp/configuring-module-dependencies-and-libraries.html

3 个答案:

答案 0 :(得分:2)

Obidisc4j是一个.jar文件。你只是在资源管理器中看不到它的扩展名。 System.loadLibrary不会加载常规jar文件。它们由JVM的classLoader自动加载。

答案 1 :(得分:1)

您正在使用本机库。如果该库位于类路径中并不重要。有四种方法可以让Java运行时在运行时加载共享库:

  1. 调用System.load从明确指定的绝对路径加载.so。
  2. 将共享库复制到java.library.path
  3. 中已列出的路径之一
  4. 修改LD_LIBRARY_PATH环境变量以包括共享库所在的目录。
  5. 使用-D选项在命令行上指定java.library.path。

答案 2 :(得分:1)

好像你的应用程序试图找到obidisc4j.dll(对于Windows)或obidisc4j.so(对于Linux)。该文件必须存在于PATH(但不是类路径)上。如果您不确定Java应用程序搜索的是什么PATH,您可以在发生异常之前编写以下语句,以找出PATH。

System.out.println(System.getProperty("java.library.path"));

这将告诉您应放置DLL或SO文件的路径。您只需将文件放在其中一个N路径中即可。