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

马丁·维伯(Martin Wiboe):

我刚刚开始学习JNI。我一直在遵循一个简单的示例,并且创建了一个Java应用程序,该应用程序在本机库中调用Hello World方法。我想针对Win32和Linux x86。

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

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

谢谢你,
马丁

克里斯·丹尼特(Chris Dennett):

对于可运行的JAR,您需要做的是提取到临时目录(可能在静态{}块中),然后从该目录加载DLL(在同一块中使用System.loadLibrary())。为此,您需要将ClassLoader子类化,并重写findLibrary()方法以允许在该目录中找到库。您可以在此处执行加载特定平台库所需的任何逻辑。老实说,在不同平台上库的命名无论如何都应该相似-我相信您在加载时省略了“ lib”部分以及扩展名。这就是要旨。使用One-JAR作为其他提到的海报可能更容易:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

NativeScript:在没有多平台插件的情况下使用特定于平台的本机库?

如何在导出到 jar 时包含 opencv 本机库

如何使用eclipse创建仅包含属性文件的jar文件?

如何使用Eclipse中包含的外部库创建jar?

如何使用本机库

如何使用Eclipse将所有图像包含在jar文件中

如何包含和引用特定于模块的CSS文件?

如何为跨平台的Jar调用特定于OS X的方法?

使用Eclipse加载Android的本机库

如何在Tomcat中添加本机库?

如果使用Maven,是否应忽略VCS中特定于Eclipse的文件?

如何使用Eclipse插件tarlog.eclipse.plugins_1.4.2.jar

如何解决我的货运文件中不匹配的依存关系,以解决本机库冲突?

如何在JAR内捆绑本机库和JNI库?

如何从使用“ Classpath”中添加的* .jar文件的Eclipse Java项目中创建jar文件

我应该如何在Linux中获取特定于平台的jni标头以进行交叉构建?

测试厨房:如何在kitchen.yml中读取特定于平台的属性

如何在LLVM pass中添加特定于平台的功能定义?

Eclipse插件:“ Bundle-NativeCode”部分中的本机库顺序

如何在目标平台JAR中的Eclipse中设置断点?

如何在我的项目 (Eclipse) 中使用 .JAR 文件类

使用 Boost Beast 在 SSL 连接中构建特定于平台的客户端身份验证

如何使用Eclipse调试Java中的死锁

如何从Eclipse中删除未使用的导入

如何使用Eclipse在一般的Java项目(不是特定于android)中创建SQLite数据库?

如何防止Eclipse对文件使用特定视图

如何复制NuGet软件包的本机库文件?

如何使本机库可选

如何仅将 main/java 中的特定文件包含在要使用 gradle 发布的 jar 中?