Java:System.load和System.loadlibrary在Windows XP中引发了不满意的链接错误,但在Windows 7中则不然

时间:2011-04-28 05:14:38

标签: file-upload

我正在寻找针对JNI的以下问题的解决方案/建议:

我正在尝试加载一个库文件(* .lib),它是从我的代码中动态创建的,并放在文件系统的temp文件夹中。但是当我尝试在Java API中加载System.loadSystem.loadlibrary时,我收到不满意的链接错误。

这里重要的是,我正在使用
从命令行运行我的应用程序 java -jar <executable-jar-file>

我确认:

  1. 如果库文件在加载前实际存在
  2. classpath&amp;路径变量设置正确
  3. 在我的桌面上,我没有看到任何有Windows 7的问题。
  4. 我在使用Windows XP的测试服务器中看到了这个问题,但是版本相同。
  5. 请提出解决方案。提前谢谢。

2 个答案:

答案 0 :(得分:0)

loadLibrary查看系统路径/库路径。我认为TEMP不包括在内。最好的方法是根据TEMP环境变量的值构建完整路径,并将该路径提供给loadLibrary

String path = System.getenv( "TEMP" );
path += File.separator + "yourlibrary.dll"; //or in the case of linux will be yourlibrary.so!
System.loadLibrary( path );

答案 1 :(得分:0)

问题已解决。

实际上问题在于测试服务器没有所需的OS库包。

我从以下网址下载了相同内容: http://www.microsoft.com/downloads/en/details.aspx?familyid=766A6AF7-EC73-40FF-B072-9112BAB119C2&displaylang=en

现在一切都准备好了......

感谢 巴鲁