可能您缺少的是
ant,这是一个面向Java的构建工具。
当你去:
cmake -D BUILD_SHARED_LIBS=OFF ../opencv-2.4.5/
(即您要在哪里配置机器的make),请查看“ java ”部分。它应该说像这样(可能具有不同的路径/版本):
-- Java:-- ant: /usr/bin/ant (ver 1.8.2)-- JNI: /usr/lib/jvm/java-6-openjdk/include /usr/lib/jvm/java-6-openjdk/include /usr/lib/jvm/java-6-openjdk/include-- Java tests: YES
当我第一次运行cmake时,我有以下内容:
-- Java:-- ant: NO-- JNI: NO-- Java tests: YES
这表明找不到它
ant,因此没有创建.jar文件。我只使用存储库中的版本:
sudo apt-get install ant
使用以上选项,我再次运行了cmake,它获得了通往ant的路径(并且我免费获得了JNI!)。
注意: 您可能想相当仔细地阅读cmake的输出,因为它告诉您它将在计算机上构建的内容,并且可能缺少一些库。
如果发现JNI仍然丢失。
cmake(通常是?首先?很方便?可以解释为?)正在寻找jni.h,这应该特别明确。
$JAVA_HOME/include/jni.h因此,您需要将$
JAVA_HOME设置为jdk的主文件夹。
我使用了
which javac然后
ls -l遵循了一系列符号链接,以标识我的Java 1.7安装位置。您还可以使用
locatejni.h和整理树,或者只是环顾四周
/usr/lib/jvm或类似。
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
您可能想检查一下是否有正确的方法
ls $JAVA_HOME/bin/javac/usr/lib/jvm/java-7-openjdk-amd64/bin/javacls $JAVA_HOME/include/jni.h/usr/lib/jvm/java-7-openjdk-amd64/include/jni.h
有趣的是,当我再次运行cmake命令时,它选择了另一个JNI文件夹:
-- JNI: /usr/lib/jvm/java-7-openjdk-amd64/include /usr/lib/jvm/java-7-openjdk-amd64/include /usr/lib/jvm/java-7-openjdk-amd64/include
一旦知道了,运行
make命令。如果您痴迷地观看,将会看到一堆.java文件杂乱无章。无论哪种方式,您最终都会在./bin文件夹中得到一个.jar文件。(在我的情况下,它被
opencv-245.jar称为是我下载的代码的版本)。



