【发布时间】:2012-11-18 18:49:15
【问题描述】:
有没有办法从我的 Java 代码中调用 so 库中的函数?一般情况下,Java程序中是否可以使用Linuxso库?
【问题讨论】:
标签: java linux shared-libraries
有没有办法从我的 Java 代码中调用 so 库中的函数?一般情况下,Java程序中是否可以使用Linuxso库?
【问题讨论】:
标签: java linux shared-libraries
【讨论】:
您不能在 Java 代码中使用任意的 .so 库。您可以使用 JNI 编写原生代码的包装器以从 Java 访问。
但是,请注意,这样做会抵消使用 Java 的许多优势。您的代码和部署系统现在变得非常脆弱,并且受到许多类型的错误的影响,这些错误在 Java 中是不会发生的。在使用本机代码之前,我会非常努力地找到一个纯 Java 解决方案。
【讨论】:
除了JNI之外,从java访问库的另一种方式是JNA。
我发现在很多情况下它比 JNI 更容易使用,但这只是我个人的看法。
【讨论】: