我刚刚开始学习JNI。我一直在遵循一个简单的示例,并且创建了一个Java应用程序,该应用程序在本机库中调用Hello World方法。我想针对Win32和Linux x86。
我的库驻留在DLL中,当将DLL添加到我的Eclipse项目的根目录时,可以使用LoadLibrary对其进行调用。
但是,我无法弄清楚如何使Eclipse导出包含Linux的DLL和.SO文件的可运行JAR。
所以我的问题基本上是;您将如何在Eclipse中创建一个项目并包含同一本机库的多个版本?
谢谢你,
马丁
对于可运行的JAR,您需要做的是提取到临时目录(可能在静态{}块中),然后从该目录加载DLL(在同一块中使用System.loadLibrary())。为此,您需要将ClassLoader子类化,并重写findLibrary()方法以允许在该目录中找到库。您可以在此处执行加载特定平台库所需的任何逻辑。老实说,在不同平台上库的命名无论如何都应该相似-我相信您在加载时省略了“ lib”部分以及扩展名。这就是要旨。使用One-JAR作为其他提到的海报可能更容易:)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句