2

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

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

现在我的环境是windows 7。

所以我的问题是:

  1. 我可以编写这样一种应用程序,即我需要为所有三个平台提供任何 .dll、.so 文件吗?

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

4

1 回答 1

0

在您的 java 类中,您将拥有

System.loadLibrary("foo")

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

于 2020-12-24T11:21:48.770 回答