Java:System.load 和 System.loadlibrary 在 Windows XP 中抛出 Unsatisfied link 错误,但在 Windows 7 中则不会

发布于 2024-11-03 11:40:17 字数 496 浏览 0 评论 0原文

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

我正在尝试加载一个库文件(*.lib),该文件是从我的代码中动态创建的,并放置在文件系统的临时文件夹中。但是,当我尝试使用 Java API 中的 System.loadSystem.loadlibrary 加载相同内容时,我收到了 Unsatisfied link 错误。

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

我验证:

  1. 之前库文件是否物理存在
  2. 在加载类路径 ?路径变量设置正确
  3. 在我的桌面上,我没有看到任何安装 Windows 7 的问题
  4. 。我在使用 Windows XP 但相同 java 版本的测试服务器中看到这个问题。

请提出解决方案。提前致谢。

I am looking out for a solution/suggestions for the below problem with JNI:

I am trying to load a library file (*.lib) which is created on the fly from my code and placed in the temp folder of the file system. But when i try to load the same, with either System.load or System.loadlibrary in Java API, I am getting Unsatisfied link error.

Important thing here would be, I am running my application from command line using
java -jar <executable-jar-file>

I verified:

  1. if the library file physically exists before loading
  2. classpath & path variables are set properly
  3. In my desktop I dont see any problems which has Windows 7.
  4. I see this issue in test server with Windows XP but same java version.

Please suggest solutions. Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

你的背包 2024-11-10 11:40:17

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 );

loadLibrary looks in the system path/library path. I don't think TEMP is included in this. Best way to do this is to build a full path based on the value of the TEMP environment variable and supply that path to loadLibrary:

String path = System.getenv( "TEMP" );
path += File.separator + "yourlibrary.dll"; //or in the case of linux will be yourlibrary.so!
System.loadLibrary( path );
远昼 2024-11-10 11:40:17

问题已解决。

实际上,问题在于测试服务器没有所需的操作系统库包。

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

现在一切准备就绪....

谢谢
巴鲁

Issue is resolved.

Actually the problem is with the test server which does not have the required OS library bundles.

I downloaded the same from the below url :
http://www.microsoft.com/downloads/en/details.aspx?familyid=766A6AF7-EC73-40FF-B072-9112BAB119C2&displaylang=en

and now its all set to go ....

thanks
balu

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文