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 库可用,完全可以试试这套方式,挺稳的。配合文末这些链接参考着做,上手快,坑也少。
353.5KB
文件大小:
评论区