Java 使用外部库导出可运行的jar文件

Java 使用外部库导出可运行的jar文件,java,eclipse,maven,opencv,jar,Java,Eclipse,Maven,Opencv,Jar,我使用两个外部库构建应用程序,第一个库是opencv,第二个是swt。我完成了应用程序,它在Eclipse中工作正常。我更改为jar文件,它不工作,然后我将加载的函数jar文件从: System.loadLibrary(Core.NATIVE_LIBRARY_NAME); 到 注意:我使用的是mac操作系统 我再次导出jar文件并使用以下命令: java -XstartOnFirstThread -jar here.jar 因为我申请了swt库。jar文件在我的笔记本电脑中工作得很好。 但一

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

System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

注意:我使用的是mac操作系统

我再次导出jar文件并使用以下命令:

java -XstartOnFirstThread -jar here.jar
因为我申请了swt库。jar文件在我的笔记本电脑中工作得很好。 但一旦我在ubuntu和windows等操作系统中尝试了它,它就不起作用了,我收到了以下错误:

我知道在windows中不需要-xstartonfirsthread,但我尝试了这两种方法,但仍然收到相同的错误。我还没有在另一个mac操作系统中尝试过,但我确信它不会工作,因为加载的opencv库将不可用,所以我尝试将所有外部库打包到jar文件中,以便在ubuntu、windows和mac os x中独立工作


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

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

第二个问题是opencv库内置函数,用于询问windows的dll文件或opencv的dylib文件,以便使用此命令加载库

          System.load(dll_path);

这是dll_path是一种字符串类型,将由用户作为选择器在每次运行时选择dll或动态库文件

检查此项我快速检查了“XstartOnFirstThread”。您可能想阅读以下内容:看起来有点像这是一个仅限OSX的选项,即Windows Order Linux虚拟机不可用。您对System.load的替换仅适用于库具有完全相同路径的系统。这很可能不会发生在生产环境中。@penguineer我知道这一点,这就是为什么我问是否有其他建议,可以将库添加到jar文件中,并更改从jar自身修复的路径
          System.load(dll_path);