我构建应用程序,使用两个外部库,第一个库是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等操作系统中尝试它,它就无法工作,我收到了以下错误:
我知道在Windows中不需要-XstartOnFirstThread,但我尝试了两种,但我仍然收到相同的错误。我还没有尝试在另一个mac操作系统中,但我确定它不会工作,因为加载的opencv库将不可用所以我试图打包我的jar文件中的所有外部库以依赖于工作在ubuntu和windows和mac os x。
根据我的研究,有一种方法可以使用maven。现在我正在使用普通的eclipse项目所以任何建议如何使用eclipse创建maven项目并导出包含所有库的jar文件?
答案 0 :(得分:0)
错误输出是因为应用程序是在eclipse上开发并在mac平台上导出所以它不能工作因为swt依赖于一个平台所以要解决问题我必须再次编译所有内容并导出在Windows上使用eclipse的jar文件以两个jars文件结尾,一个用于mac,另一个用于windows。
第二个问题我构建的opencv库函数询问了windows的dll文件或opencv的dylib文件,所以使用这个命令加载库
System.load(dll_path);
这是dll_path是一个字符串类型,将由用户作为选择器给出,以便在每次运行时选择dll或dylib文件