Java加载库
当我像这样加载库时:Java加载库,java,Java,当我像这样加载库时: String strDllFileName = m_strUserPath + "\\res\\EQ2008_Dll.dll"; String strEQ2008_Dll_Set_Path = m_strUserPath + "\\res\\EQ2008_Dll_Set.ini"; m_DllLibrary = (DllLibrary) Native.loadLibrary(strDllFileName,DllLibrary.class);
String strDllFileName = m_strUserPath + "\\res\\EQ2008_Dll.dll";
String strEQ2008_Dll_Set_Path = m_strUserPath + "\\res\\EQ2008_Dll_Set.ini";
m_DllLibrary = (DllLibrary) Native.loadLibrary(strDllFileName,DllLibrary.class);
m_DllLibrary.User_ReloadIniFile(strEQ2008_Dll_Set_Path);
我的结果是:线程“main”java.lang中出现异常。未满足链接错误:无法加载库
我怎样才能解决这个问题
结果:
Exception in thread "main" java.lang.UnsatisfiedLinkError:
Unable to load library 'C:\Users\Krzysiek\Desktop\EQ2008_Dll_Java\res\EQ2008_Dll':
Nie mo?na odnale?? okre?lonego modu?
at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:163)
at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:236)
at com.sun.jna.Library$Handler.<init>(Library.java:140)
at com.sun.jna.Native.loadLibrary(Native.java:379)
at com.sun.jna.Native.loadLibrary(Native.java:364)
at com.eq2008.Fun.main(Fun.java:274)
String strDllFileName = m_strUserPath + "\\res\\EQ2008_Dll";
String strEQ2008_Dll_Set_Path = m_strUserPath + "\\res\\EQ2008_Dll_Set.ini";
m_DllLibrary = (DllLibrary) Native.loadLibrary(strDllFileName,DllLibrary.class);
m_DllLibrary.User_ReloadIniFile(strEQ2008_Dll_Set_Path);
线程“main”java.lang.UnsatifiedLinkError中出现异常:
无法加载库“C:\Users\Krzysiek\Desktop\EQ2008\u Dll\u Java\res\EQ2008\u Dll”:
尼莫?那奥德纳勒??okre?lonego modu?
位于com.sun.jna.nativellibrary.loadLibrary(nativellibrary.java:163)
位于com.sun.jna.nativellibrary.getInstance(nativellibrary.java:236)
位于com.sun.jna.Library$Handler。(Library.java:140)
位于com.sun.jna.Native.loadLibrary(Native.java:379)
位于com.sun.jna.Native.loadLibrary(Native.java:364)
位于com.eq2008.Fun.main(Fun.java:274)
字符串strDllFileName=m_strUserPath+“\\res\\EQ2008_Dll”;
字符串strEQ2008\u Dll\u Set\u Path=m\u struerpath+“\\res\\EQ2008\u Dll\u Set.ini”;
m_DllLibrary=(DllLibrary)Native.loadLibrary(strdlfilename,DllLibrary.class);
m_DllLibrary.User_重载文件(strEQ2008_Dll_Set_路径);
m_strUserPath的值是多少?请在您的问题中包含错误的整个堆栈跟踪。@reporter我编辑了我的post@VGR我在系统的库路径(%Windows中的路径%、Linux中的${LD_library_path}等)中编辑我的后置库文件,然后将文件的基本名称传递给
loadLibrary
方法。如果文件为“EQ2008_Dll.Dll”,则基本名称为“EQ2008_Dll”
。如果该文件仅驻留在.jar文件中,我敢肯定您根本无法将其传递给loadLibrary方法。m_strUserPath
的值是多少?请在您的问题中包含错误的整个堆栈跟踪。@reporter我编辑了我的post@VGR我在系统的库路径中编辑我的后置库文件(%PATH%在Windows中,${LD_LIBRARY_PATH}在Linux中,等等),然后将文件的基本名称传递给loadLibrary
方法。如果文件是“EQ2008_Dll.Dll”,则基本名称是“EQ2008_Dll”
。如果文件只驻留在.jar文件中,我很确定您根本无法将其传递给loadLibrary方法。