在linux、mac和windows中使用JNI

Posted

技术标签:

【中文标题】在linux、mac和windows中使用JNI【英文标题】:Using JNI in linux, mac and windows 【发布时间】:2012-04-09 06:06:14 【问题描述】:

我有一个完全用 cpp 编写的应用程序,现在我需要在 java 中迁移它,但我不需要将处理逻辑从 cpp 转换为 java,所以我决定使用 JNI。应用必须在linux、mac和windows环境下运行。

但我发现对于 windows,我们需要为 jni 指定 .dll 文件,对于 linux .so 文件,我不知道对于 mac。

现在我的环境是 windows 7。

所以我的问题是:

    我能否编写应用程序,使我需要为所有三个平台提供任何 .dll、.so 文件?

    如何做到这一点?有什么指导方针吗?

【问题讨论】:

【参考方案1】:

在您的 java 类中,您将拥有

System.loadLibrary("foo")

然后你只需要在每个系统上编译一个库,例如Linux 的 libfoo.so 和 Windows 的 foo.dll

【讨论】:

以上是关于在linux、mac和windows中使用JNI的主要内容,如果未能解决你的问题,请参考以下文章