【发布时间】:2014-08-28 13:37:08
【问题描述】:
我编写了一个使用 OpenCV 库的 Java 程序。到目前为止,我使用 eclipse 执行了程序(并在 eclipse 属性中设置了 Jar 位置)。
这是一个大学期末项目。我的导师现在想在他的电脑上运行这个程序。如何生成一个可运行的 jar(使用 Ant 或使用 Java 代码),它将从特定位置(将位于可执行 Jar 目录中的目录)加载 Java OpenCV jar,这将适用于 Linux 和 Windows(我理解linux用的是jar文件,windows用的是dll文件)?
我尝试过使用:
String currentDir = System.getProperty("user.dir");
System.load(currentDir + "/path_to_jar/opencv-248.jar");
(我们忽略它只会在linux下工作的事实)但是在执行jar时,会出现以下错误:
OpenJDK 64 位服务器 VM 警告:您已加载库 /path_to_jar/opencv-248.jar,它可能禁用了堆栈保护。虚拟机现在将尝试修复堆栈防护。 强烈建议您使用“execstack -c”修复库,或使用“-z noexecstack”链接它。 线程“main”中的异常 java.lang.UnsatisfiedLinkError: /path_to_jar/opencv-248.jar: /path_to_jar/opencv-248.jar: 无效的 ELF 标头(可能原因:字节序不匹配)
任何帮助将不胜感激。
【问题讨论】:
-
linux 不加载“jars”,它加载“.so”文件。 jar 在类路径上。共享库“.so”应该在 java 命令行参数“-Djava.library.path”定义的位置可用。
标签: java