文件名称:故障排除故障排除故障排除故障排除-《捷联惯导系统原理》陈哲
文件大小:692KB
文件格式:PDF
更新时间:2024-06-27 17:38:56
JNI
5.2 故障排除故障排除故障排除故障排除 当使用 JNI 从 Java 程序访问本机代码时,您会遇到许多问题。您会遇到的三个 最常见的错误是: •无法找到动态链接。它所产生的错误消息 是:java.lang.UnsatisfiedLinkError。这 通常指无法找到共享库,或者无法找到共享库内特定的本机方法。 •无 法找到共享库文件。当用 System.loadLibrary(String libname) 方法(参数是 文件名)装入库文件时,请确保文件名拼写正确以及没有指定扩展名。还有,确 保库文件的位置在类路径中,从而确保 JVM 可以访问该库文件。 •无法找到具有指定说明的方法。确保您的 C/C++ 函数实现拥有与头文件中的函 数说明相同的说明。 从 Java 调用 C 或 C++ 本机代码(虽然不简单)是 Java 平台中一种良好集成 的功能。虽然 JNI 支持 C 和 C++,但 C++ 接口更清晰一些并且通常比 C 接口 更可取。 正如您已经看到的,调用 C 或 C++ 本机代码需要赋予函数特殊的名称,并创建 共享库文件。当利用现有代码库时,更改代码通常是不可取的。要避免这一点, 在 C++ 中,通常创建代理代码或代理类,它们有专门的 JNI 所需的命名函数。 然后,这些函数可以调用底层库函数,这些库函数的说明和实现保持不变。 5.2 使用 JNI 技术实现 java 程序调用第三方 dll(c/c++)文件的功能 JAVA 的跨平台的特性 深受 java 程序员们的喜爱,但正是由于它为了实现跨平台 的目的,使得它和本地机器的各种内部联系变得很少,大大约束 了它的功能,比如 与一些硬件设备通信,往往要花费很 大的精力去设计流程编写代码去管理设备 端口,而且有一些设备厂商提供的硬件接口已经经过一定的封装和处理,不能直接