我编写了一个使用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,它可能已禁用堆栈保护。 VM将尝试立即修复堆栈防护。 强烈建议您使用'execstack -c'修复库,或将其与'-z noexecstack'链接。 线程“main”中的异常java.lang.UnsatisfiedLinkError:/path_to_jar/opencv-248.jar:/path_to_jar/opencv-248.jar:无效的ELF头(可能的原因:字节序不匹配)
任何帮助都将受到高度赞赏。
答案 0 :(得分:1)
对java可执行文件使用classpath选项。
如果您正在运行OpenJDK,请阅读http://linux.die.net/man/1/java-java-1.6.0-openjdk
上的联机帮助页你应该能够使用以下内容:
java -jar yourapp.jar -cp ./path_to_jar/
另一个选择是构建一个包含自己的依赖项的JAR。以下是我使用搜索术语找到的一些示例" java create jar include dependencies":