【发布时间】:2016-02-24 09:55:39
【问题描述】:
我使用两个外部库构建应用程序,第一个库是 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 文件?
【问题讨论】:
-
我快速检查了“XstartOnFirstThread”。您可能想阅读以下内容:stackoverflow.com/questions/28149634/… 看起来有点像这是一个仅限 OSX 的选项,即不适用于 Windows 或 Linux 虚拟机。
-
您替换 System.load 仅适用于库具有完全相同路径的系统。这很可能不会在生产环境中发生。
-
@penguineer 我知道这就是为什么我问是否有任何其他建议我可以在 jar 文件中添加库并更改要从 jar 中修复的路径它是 self
标签: java eclipse maven opencv jar