Java错误-在Java.library.path中找不到库?

Java错误-在Java.library.path中找不到库?,java,windows,path,Java,Windows,Path,我收到如下错误消息: Windows无法加载库libraryname.dll。制作 确保库位于Path环境变量中。例外情况 线程“main”中的java.lang.UnsatifiedLinkError:中没有库名 java.library.path 这个错误是因为我试图通过cmd在Windows XP上运行jar文件。我想知道,java.library.path到底在哪里?我已经将C:\Program Files\Java\jdk1.6.0\U 26添加到我的路径中,但它仍然会给我错误。您将如

我收到如下错误消息:

Windows无法加载库libraryname.dll。制作 确保库位于Path环境变量中。例外情况 线程“main”中的java.lang.UnsatifiedLinkError:中没有库名 java.library.path

这个错误是因为我试图通过cmd在Windows XP上运行jar文件。我想知道,java.library.path到底在哪里?我已经将C:\Program Files\Java\jdk1.6.0\U 26添加到我的路径中,但它仍然会给我错误。您将如何进行调试


谢谢。

您只需将java.library.path作为系统属性传递,如下所示:

java -Djava.library.path=<path_to_dll> <main_class>
java-Djava.library.path=

首先,您需要找出libraryname.dll的位置,并将其添加到上面的“path_to_dll”中。

错误基本上是说它找不到本机库。Java试图通过查看Java.library.path属性来定位您的库

这是一个您需要的系统环境,以便Java可以在您运行应用程序时找到您的本机库。有几种方法可以做到这一点:

  • 运行程序时使用java-Djava.library.path=[path to your library]
  • 从代码中,您也可以这样做

    
    System.setProperty( "java.library.path", "/path/to/libs" );
    
  • 从IDE进行设置。Eclipse的一个例子可以在这个问题中找到


编辑:下面有一条很好的评论指出#2不能100%工作,因为在调用getProperty()之前可能没有设置它。错过了这一点,谢谢你指出这一点。

libraryname.dll的确切名称很重要。确切名称?什么意思?它有多重要?谢谢。@Thorbjørn确切的名称并不重要,它所在目录的路径是enoughPATH和library path是两个不同的东西。您可以发布一些显示问题的示例代码吗?原始错误文本是“library libraryname.dll无法…”吗?应该包含什么?包含main()的类方法,即程序的入口点作为jna.library.path为我工作您建议的第二个选项不适用于“java.library.path”属性。看:它不是一直都能用的。但是如果他将它设置在getProperty()之前,我认为它会起作用。好的一点是,我应该在我的回答中提到,并接受因遗漏而投的反对票,问题是获得关于library.path的澄清,我们应该向他提供可能的信息。我同意,根据《守则》来设置它不是一个好的做法+1因此,这不是一个好的做法,您不能从代码中设置该特定属性。属性作为JVM初始化的一部分被加载,并且值被缓存;以编程方式更改属性将无效。