Java错误-在Java.library.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添加到我的路径中,但它仍然会给我错误。您将如何进行调试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添加到我的路径中,但它仍然会给我错误。您将如
谢谢。您只需将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初始化的一部分被加载,并且值被缓存;以编程方式更改属性将无效。