2012-01-24 143 views
1

我的Java程序失败,在Windows上出现以下错误。Eclipse(Helios)无法加载DLL

Exception in thread "main" java.lang.UnsatisfiedLinkError: no XSvcSocket in java.library.path 
at java.lang.ClassLoader.loadLibrary(Unknown Source) 
at java.lang.Runtime.loadLibrary0(Unknown Source) 
at java.lang.System.loadLibrary(Unknown Source) 

我试着像

  • 不同的东西添加DLL的位置,以系统的PATH环境变量
  • 在程序中设置DLL的位置明确如下

     String libpath = System.getProperty("java.library.path"); 
         libpath = "C:\\extlibs;" + libpath; 
         System.setProperty("java.library.path", libpath); 
         libpath = System.getProperty("java.library.path"); 
    

我看到的java.library.path如下所示。

"Lib Path: C:\extlibs;C:\Program Files\Java\jre6\bin;.;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows" 

有问题的DLL可在“C:\ extlibs”中找到。几个观察是,当我把DLL放到“C:\ Program Files \ Java \ jre6 \ bin”中时,我的程序不会关于DLL(即加载它),但我必须处理许多其他DLL太。

任何人都可以阐明这种行为?顺便说一句,我也无法弄清楚从哪里挑选C:\ Program Files \ Java \ jre6 \ bin并添加到java.library.path?它不是系统路径环境变量的一部分。

回答

1

在eclipse中添加本机库的正确方法如下所示。转到Properties/Java Build Path/Libraries/Expand the jar file for which you want to add the native library/Select Native Library location/Click Edit/Add the DLL

enter image description here

+0

非常感谢。它有帮助。 – Shyam

+0

但我只能添加一个文件夹,而不是.dll,是吗? – DkAngelito