在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的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Windows/Mac/Linux 中创建隐藏文件?

使用 Python 在 Linux、Windows 和 Mac 上列出磁盘驱动器的跨平台方法?

如何使用 FLTK 在 Windows、Mac OS X 和 Linux 中使窗口透明?

OpenGL ES 2.0 适用于 Windows 和 Linux,但不适用于 Mac

在非 Windows 平台(Linux 或 Mac)上使用 Python 中的 Access 数据库

在非 Windows 平台(Linux 或 Mac)上使用 Python 中的 Access 数据库