【问题标题】:Choosing Java version when Installing OpenCV with Homebrew使用 Homebrew 安装 OpenCV 时选择 Java 版本
【发布时间】:2019-04-16 23:57:09
【问题描述】:

我正在尝试使用来自 documentation 的基于 Homebrew 的安装说明安装 OpenCV。

brew edit opencv # edit file and set -DBUILD_opencv_java=ON 
brew install --build-from-source opencv

然后我尝试在我的 Java 项目中使用生成的 OpenCV jar,但它在运行时失败,因为用于编译的 Java 版本与我的运行时不匹配。

Caused by: java.lang.UnsupportedClassVersionError: org/opencv/core/Core has been compiled by a more recent version of the Java Runtime (class file version 54.0), this version of the Java Runtime only recognizes class file versions up to 52.0

我需要用 Java 8 编译它,但它正在用 Java 10 编译。

如何告诉 Homebrew/OpenCV 使用哪个版本的 javac?

我已尝试将我的 JAVA_HOME 设置为所需的位置,但仍然无法正常工作。

【问题讨论】:

  • 你在哪里设置 JAVA_HOME,在构建 OpenCV 之前你是在运行java -version 吗?
  • 我尝试在我的~/.bash_profile 中设置 JAVA_HOME 并将其添加到我的PATH。我也尝试过使用jenv 并设置全局java 版本。是的,在构建 OpenCV(使用上面的命令)之前,我运行了 java -version 并返回:java version "1.8.0_192"
  • 我也有类似的问题。有人设法解决这个问题吗?

标签: java opencv cmake homebrew


【解决方案1】:

Set target java version when build OpenCV with brew

用户 minhtus 回答他自己的问题;

找到答案,把多余的 -DOPENCV_JAVA_TARGET_VERSION=1.8 args 在 brew 公式中进行 cmake。

您可以使用命令执行此操作;

brew编辑opencv

然后在编辑器中,寻找;

args = std_cmake_args + %W[
  -DCMAKE_OSX_DEPLOYMENT_TARGET=
  -DBUILD_JASPER=OFF
  -DBUILD_JPEG=OFF
  -DBUILD_OPENEXR=OFF
  -DBUILD_PERF_TESTS=OFF

并插入 java 版本标志。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-13
    • 2017-11-21
    • 1970-01-01
    • 2015-01-14
    相关资源
    最近更新 更多