5

我尝试在Raspberry Pi(Debian 4.6.3)上使用Java构建opencv,每次cmake出错时都会收到错误:找不到JNI(缺少:JAVA_INCLUDE_PATH JAVA_INCLUDE_PATH2 JAVA_AWT_INCLUDE_PATH)。我使用了这个文档(http://docs.opencv.org/doc/tutorials/introduction/desktop_java/java_dev_intro.html#sbt-project-for-java-and-scala)。我一直在互联网上寻找解决方案。建议设置 JAVA_HOME 变量,安装 ant,安装 python,将 ${JAVA_HOME}/bin 变量添加到 PATH 变量,将 JDK_HOME 变量设置为我的 jdk1.8.0 主页。不幸的是,还没有任何帮助。我尝试了一切,我什至尝试从 Raspberry Pi 中完全删除 opencv(2.4.6.1),下载另一个版本(2.4.6)并使用 cmake 构建它 - 没有任何效果。我在 Raspberry Pi 上有两个 jre:一个(可能)预装了“Java-6-openjdk-armhf”,一个是我自己安装的“Java Early Access”(jdk1.8.0 - 特别适用于带有硬浮点的 Raspbian)。我尝试将 JAVA_HOME 设置为“/home/pi/java/jdk1.8.0”(我安装了“Java Early Access”)和“/home/pi/java/jdk1.8.0/”,问题似乎是cmake找不到jni.h文件,通常可以在“JAVA_HOME/include/”中找到。我检查了这个文件,我有它;如果我在 shell 中键入“ls $JAVA_HOME/include”,我会得到其中包含 jni.h 的文件。所以,我没有想法。如果您知道如何解决我的问题,请帮助我。

提前致谢!

德米特里

4

2 回答 2

9

我终于找到了我的问题的解决方案,所以我自己回答。事实证明,cmake 在 Raspberry Pi 上检查管理员的系统变量,不幸的是,我只为我的用户(不是管理员)设置了 JAVA_HOME 和 ANT_HOME。似乎如果我更改文件 /etc/Profile,这些更改不会涉及管理员,我不知道 :-(

所以,在我为管理员设置了 JAVA_HOME 和 ANT_HOME 加上 PATH 之后,cmake 找到了 ANT 和 JNI。

希望,它会帮助别人!

此致,

德米特里

于 2013-09-02T14:17:48.607 回答
1

我在亚马逊 EC2 上遇到了这个问题,并通过以下方式解决了它:

sudo yum install java-1.7.0-openjdk-devel

于 2016-05-03T14:38:30.107 回答