【问题标题】:Installing OpenCV on Raspbian for Java, "Could not FindJNI"在 Raspbian for Java 上安装 OpenCV,“无法 FindJNI”
【发布时间】:2016-05-05 05:49:05
【问题描述】:

我正在尝试在 Raspbian 上安装 OpenCV,以便可以将我的 Java 代码部署到 RPi。然而,让 cmake 查找 JNI 被证明是一项令人讨厌的任务。这里回答的一个问题指出,管理员也需要设置 JAVA_HOME,而不仅仅是用户。所以我将它设置在 /etc/environment 以及之前在 .bashrc 中的设置。

How to resolve "Could not find JNI", building OpenCV on Raspberry Pi?

但是,cmake 仍然找不到 JNI,即使在我更新它以找到如下所述的 Include 目录之后;

cmake find_package(JNI) not work in Ubuntu 12.04 amd64

我尝试了许多不同的组合,包括 Java 安装和环境设置,虽然它在 /opt/java 中解压缩 java 并建议将 JAVA_HOME 设置为那里;

http://elinux.org/RPi_Java_JDK_Installation

相关的 FindJNI.cmake 行包括;

SET(JAVA_AWT_INCLUDE_DIRECTORIES
  "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.4;JavaHome]/include"
  "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.3;JavaHome]/include"
  "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\${java_install_version};JavaHome]/include"
  ${_JAVA_HOME}/include
  /usr/include 
  /usr/local/include
  /usr/lib/java/include
  /usr/local/lib/java/include
  /usr/lib/jvm/jdk-7-oracle-armhf/include  <-- Added by me

JAVA_APPEND_LIBRARY_DIRECTORIES(JAVA_AWT_LIBRARY_DIRECTORIES
  ${_JAVA_HOME}/jre/lib/{libarch}
  ${_JAVA_HOME}/jre/lib
  ${_JAVA_HOME}/lib
  ${_JAVA_HOME}
  /usr/lib
  /usr/local/lib
  /usr/lib/jvm/java/lib
  /usr/lib/java/jre/lib/{libarch}
  /usr/lib/jvm/jdk-7-oracle-armhf
  /usr/lib/jvm/jdk-7-oracle-armhf/lib
  /usr/lib/jvm/jdk-7-oracle-armhf/lib/{libarch}
  /usr/lib/jvm/jdk-7-oracle-armhf/{libarch}

相关的 OpenCV 安装脚本行包括;

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_SHARED_LIBS=OFF  -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON WITH_QT=ON -D WITH_OPENGL=ON ..
make -j 8
sudo make install

Cmake 输出包括;

-- 找不到 JNI(缺少:JAVA_AWT_LIBRARY JAVA_JVM_LIBRARY)
cmake 未知系统,创建:Platform/error pid:6186, boost::interprocess::bad_alloc Linux 使用这个系统,请发送 你的配置文件到 cmake@www.cmake.org 所以

我不知道在可以使用 Java 的 Raspbian 上加载 OpenCV 的更多线索 - 我还需要做什么?

【问题讨论】:

    标签: java opencv cmake environment-variables raspberry-pi


    【解决方案1】:

    试试这个。

    open Terminal < export JAVA_HOME=/usr/lib/jvm/jdk-7-oracle-armhf
    

    就我而言,我已经安装了java-7-openjdk-armhf,它在构建 opencv 时对我有用。

    【讨论】:

      【解决方案2】:

      我遇到了和你一样的问题。唯一对我有用的是将缺少的路径指定为 cmake 命令的参数。

      我按照 OpenCV 网站 (OpenCV Java Tutorial) 的说明操作修改了 cmake 命令,如下所示:

      cmake -D BUILD_SHARED_LIBS=OFF -DJAVA_INCLUDE_PATH=/usr/lib/jvm/jdk-7-oracle-armhf/include -DJAVA_AWT_LIBRARY=/usr/lib/jvm/jdk-7-oracle-armhf/jre/lib/amd64/libawt .so -DJAVA_JVM_LIBRARY=/usr/lib/jvm/jdk-7-oracle-armhf/jre/lib/arm/server/libjvm.so ..

      在您的情况下,您是说您收到了消息(missing: JAVA_AWT_LIBRARY JAVA_JVM_LIBRARY),因此您可能只需要指定这些...

      希望这会有所帮助!祝你好运。

      【讨论】:

        【解决方案3】:

        虽然这是一个老问题,但我已经创建了一个 OpenCV 3.1.0 here 的分支,它使用 Maven 为 OpenCV(以及标准工件)构建了一个与 OSGi 兼容的 JAR(包)。它所做的一件事是在构建之前检查构建环境和本机依赖项。有关详细信息,请参阅页面上的 README 指南。

        【讨论】:

          猜你喜欢
          • 2020-07-30
          • 2016-09-25
          • 2021-04-22
          • 2017-12-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-12-04
          • 2016-05-30
          相关资源
          最近更新 更多