Java调用C示例(JNI)

Java 调 C 的例子真挺实用,尤其你要搞点性能要求高的操作时。用JNI连上 C 库,响应快,效率高,关键代码还不多。

Java 的 String 传给 C,其实没你想得那么麻烦。用NewStringUTF直接干回来就行了,写个native方法声明一下,C 里按套路实现,Java 里就能直接用结果了,蛮顺的。

开发环境这块呢,JDK 要配好,VC++编译器装一个就行,VS 也可以。路径配置那部分得细点,头文件、库路径都要加清楚,不然编译容易踩坑。

实际写起来也没多复杂。Java 里建个类,声明下native方法,javac编译,再用javah(或现在推荐用javac -h)生成 C 头文件。C 函数照着头文件来实现,注意类型转换就好。

编译成.dll后,用System.loadLibrary在 Java 里加载一下,这时候运行 Java 程序,它就能直接调 C 函数拿结果了。像String这类对象,用JNIEnv指针操作,还挺方便的。

如果你也碰到 Java 性能瓶颈,又恰好有现成的 C 库可用,完全可以试试这套方式,挺稳的。配合文末这些链接参考着做,上手快,坑也少。

doc 文件大小:353.5KB