使用外部库导出runnable jar文件

时间:2016-02-24 09:55:39

标签: java eclipse maven opencv jar

我构建应用程序,使用两个外部库,第一个库是opencv,第二个是swt我完成了应用程序,它在Eclipse中工作正常我改为jar文件它不起作用然后我更改加载的函数jar文件从:

System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

System.load("/Users/AbdallahRizk/Documents/opencv/opencv-2.4.11/build/lib/libopencv_java2411.dylib");

注意:我正在使用mac操作系统。

然后我再次导出jar文件并使用命令:

java -XstartOnFirstThread -jar here.jar

因为我申请了swt库。 jar文件在我的笔记本电脑中运行完美。 但是一旦我在ubuntu和windows等操作系统中尝试它,它就无法工作,我收到了以下错误:

enter image description here

我知道在Windows中不需要-XstartOnFirstThread,但我尝试了两种,但我仍然收到相同的错误。我还没有尝试在另一个mac操作系统中,但我确定它不会工作,因为加载的opencv库将不可用所以我试图打包我的jar文件中的所有外部库以依赖于工作在ubuntu和windows和mac os x。

根据我的研究,有一种方法可以使用maven。现在我正在使用普通的eclipse项目所以任何建议如何使用eclipse创建maven项目并导出包含所有库的jar文件?

1 个答案:

答案 0 :(得分:0)

错误输出是因为应用程序是在eclipse上开发并在mac平台上导出所以它不能工作因为swt依赖于一个平台所以要解决问题我必须再次编译所有内容并导出在Windows上使用eclipse的jar文件以两个jars文件结尾,一个用于mac,另一个用于windows。

第二个问题我构建的opencv库函数询问了windows的dll文件或opencv的dylib文件,所以使用这个命令加载库

          System.load(dll_path);

这是dll_path是一个字符串类型,将由用户作为选择器给出,以便在每次运行时选择dll或dylib文件