如何解决“无法找到JNI”,在Raspberry Pi上构建OpenCV?

时间:2013-08-30 09:43:09

标签: java linux opencv java-native-interface cmake

我尝试在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 home。不幸的是,还没有任何帮助我。我尝试了一切,我甚至尝试从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 with hardfloat)。我试图将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的文件。所以,我没有想法。如果你知道如何解决我的问题,请帮助我。

提前致谢!

梅德

2 个答案:

答案 0 :(得分:9)

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

因此,在为管理员设置JAVA_HOME和ANT_HOME加PATH之后,cmake找到了ANT和JNI。

希望,它会对某人有所帮助!

致以最诚挚的问候,

梅德

答案 1 :(得分:1)

我在亚马逊EC2上遇到了这个问题并用以下方法解决了这个问题:

sudo yum install java-1.7.0-openjdk-devel