繁体   English   中英

如何使用Eclipse在.JAR文件中包含特定于平台的本机库?

[英]How can I include platform-specific native libraries in the .JAR file using Eclipse?

我刚刚开始学习JNI。 我一直在关注一个简​​单的例子,我创建了一个Java应用程序,它在本机库中调用Hello World方法。 我想针对Win32和Linux x86。

我的库驻留在DLL中,当DLL被添加到Eclipse项目的根目录时,我可以使用LoadLibrary调用它。
但是,我无法弄清楚如何让Eclipse导出包含DLL和Linux的.SO文件的可运行JAR。

所以我的问题基本上是; 您将如何在Eclipse中创建项目并包含同一本机库的多个版本?

谢谢,
马丁

对于可运行的JAR,您需要做的是提取到临时目录(可能在静态{}块中),然后从该目录加载DLL(在同一块中使用System.loadLibrary())。 为此,您需要继承ClassLoader并覆盖findLibrary()方法以允许在该目录中找到库。 您可以在此处执行所需的任何逻辑来加载特定平台库。 说实话,不同平台上的库命名应该是相似的 - 我相信你在加载时省略了'lib'部分和扩展名。 这是它的要点。 可能更容易使用One-JAR,因为另一张海报提到:)

您可能想要查看One-JAR项目。 它允许您将应用程序及其依赖项(包括本机库)打包到单个jar文件中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM