java - 如何调试在 Java 中加载 native 库时出现的问题?

标签 java java-native-interface

我有一个与 JNI 和 Java 相关的问题。事情是这样的:客户希望我们在他的系统上安装某个应用程序。这个应用程序使用 native 库,但客户端不想将这些库放在他的系统文件夹中,原因我不太了解或理解,但无法更改。

为了规避这个问题,我尝试使用 -Djava.library.path 启动 JVM,并在其中放入正确的 dll。但事实是,我有一个UnsatisfiedLinkError当我尝试启动我的项目时。从我所看到的来看,问题不在调用的主dll中(因为该文件显然存在,我在调试时看到它),我认为这一定是第一个dll链接的一些库有问题,但我不知道不知道如何找到缺少的 dll。

知道如何解决这个问题吗?

最佳答案

我的第一个调用端口(即使是 JNI 调试)始终是 Dependency Walker 。如果不出意外,它会告诉您 DLL 所依赖的所有其他 DLL。

ldd与 Linux 相同。

关于java - 如何调试在 Java 中加载 native 库时出现的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2289937/

相关文章:

java - 如何使用 Selenium 单击网页上的打印按钮

java - 遍历 Map 时允许对 Map 执行哪些基本操作?

java - 项目 fatal error

java - 在 java 中用 System.loadLibrary() 加载的 .dll 的搜索路径是什么?

java - 使用 JNI 返回对象防止内存泄漏

java-native-interface - 使用 NewDirectByteBufer() 创建的 ByteBuffer 中没有数组

java - 在 native 查询中将架构名称作为参数传递

java - 未找到 Conexion 类

java - 使用 jni4net 从 .dll 生成 .java

linux - 遇到错误 "*** glibc detected *** free(): invalid next size (fast)"