我有一个.so
在 ELF 格式下为 Linux 编译的库,Java 程序正在使用它。我正在尝试将此应用程序移植到 Mac OS X,并发现 OS X 对这些文件使用不同的扩展名,.jnilib
. 我已经想出了如何设置PATH
它以便正确找到文件。但是,OS X Java 无法加载.so
文件(因为它需要其他扩展名)。
如果我将文件扩展名从 更改.so
为.jnilib
,JVM 可以找到文件但无法读取它们(因为它们已被错误编译)。
在没有源代码的情况下,在 Linux 系统或 Mac OS X 中,有什么方法可以将这些.so
文件转换为.jnilib
? 我怀疑这是不可能的,但 Stack Overflow 还没有让我失望——而且我不会把“这不可能”算作失败。