当前位置: 首页 > 面试题库 >

JNI依赖库

后烨煜
2023-03-14
问题内容

我正在通过JNI运行一个库(我没有写过),并且在内部它调用了另一个DLL。除非我将另一个DLL的路径放在系统PATH变量上(我在Windows
XP上),否则我会收到一条错误消息:“找不到依赖的库”。我希望能够在Java命令行上处理此问题,并且我已经尝试将其添加到-
Djava.library.path和classpath中,但都没有起作用(我希望-
Djava.library.path可以工作但不是classpath,但都没有作用)。有没有办法做到这一点?

谢谢,

杰夫


问题答案:
  • 如果您的DLL名称为“ MyNativeDLL.dll”,则应在LoadLibrary调用中使用“ MyNativeDLL”。
  • 使用Dependency Walker检查MyNativeDLL.dll是否需要任何文件
  • 如果有,请将它们包含在与MyNativeDLL.dll相同的文件夹中-您可以将其工作,然后尝试将其他所需的文件放入System32文件夹中。


 类似资料:
  • 长话短说:我有一个可执行的jar,它调用,它依赖于。我得到了非常可怕的。 这个答案非常接近,但根据我的经验,它不能解决问题。即使在中指定了dll所在的文件夹,它也不会工作。我还必须更改Windows环境变量。事实上,Windows上默认的似乎是。 有什么“漂亮”的方法可以解决这个问题吗?我想为Windows构建一个安装程序,我想知道如何处理这个问题,这样最终用户就不必做任何手动工作。 编辑: 我实

  • 我尝试了Hello world JNI,来自: http://home.pacifier.com/~mmead/jni/cs510ajp/ 我学习了Java类: 然后打电话进来: cpp文件如下所示: 我已切换到JDK x86并使用x86编译: 我使用了QT文件夹中的MINGW32的gcc(希望没问题) 注意:我必须添加共享,否则会出现错误: 请注意,我已经确保运行的是x32 jdk的java,并

  • 我收到这个错误消息 mylib。dll是一个JNI包装器,它使用其他C库。 当我打开mylib时。dll带有依赖项遍历器它显示所有依赖库都可用! 有没有办法检查java中找不到哪个库? 我用Visual Studio编译了第三方库,用mingw32编译了mylib。这可能是个问题吗?

  • 我试图编写一个简单的Java程序,通过JNI调用C函数来打印“Hello World”。一切编译都没有错误,但当我运行程序时,我得到一个“UnsatisfiedLinkError:找不到依赖库”。 根据Dependency Walker和dumpbin的说法,唯一的依赖项是“kernel32.dll”,在C:\Windows\System32及其依赖项中,也在System32中。 使命感 返回时没

  • 假设我有。它取决于。现在我的Java应用程序调用。 下面的文件夹布局工作吗? “第一级”: 使用JVM属性定位。 “第二级”: 这是正确的吗? 如果将设置为,我认为它可以覆盖对的搜索。但是它是否也包括对的搜索? 从这里看来,我对两个层次的猜测得到了证实:如何在Eclipse启动时将本机库添加到“java.library.path”(而不是重写它) 参见凯文·克莱恩的评论。但是使用环境变量的上述解决

  • 问题内容: 我正在使用JNI的Java项目中。JNI调用了一个我自己编写的自定义库,比方说mylib.dll,它依赖于一个第三方库libsndfile-1.dll。 当我运行程序时,它崩溃 我搜索了该网站(和其他网站),并尝试了许多修复程序: 我跑了依赖沃克。DW发出了一些警告-libsndfile所需的两个库MPR.DLL和SHLWAPI.DLL具有“未解决的导入”-但DW FAQ表示可以安全地