首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java11的OpenCV构建失败:警告:目标版本11与默认源代码版本18发生冲突

Java11的OpenCV构建失败:警告:目标版本11与默认源代码版本18发生冲突
EN

Stack Overflow用户
提问于 2022-04-10 22:47:59
回答 1查看 368关注 0票数 2

我正在开发一个运行Java 11的Java应用程序,我选择了Java 11,因为它是LTS的最后一个Java版本。我在这个Java应用程序中使用OpenCV,并且使用来自contrib模块的库。我正在使用Homebrew安装带有Java绑定和控制模块的OpenCV。

我尝试的第一件事是从源代码安装OpenCV,而不指定Java版本。当我这样做时,OpenCV安装正确,但是当我试图在代码中使用它时,我得到了以下错误:

class file has wrong version 61.0, should be 55.0

我认为这意味着因为OpenCV是通过Java 17编译的,所以我不能在Java 11代码中使用它。还值得一提的是,由于我在我的OpenCV项目中使用Maven,我首先通过类似于mvn install:install-file -Dfile=/usr/local/Cellar/opencv/4.5.5_1/share/java/opencv4/opencv-455.jar的东西将Maven JAR导出到本地Maven模块中。我使用OpenJDK 11作为这个导出的JRE。

我还使用OpenJDK 11作为我的Mac上的默认JDK (java -versionjavac -version都返回OpenJDK 11)。所以我对这个错误感到有点惊讶。因此,为了解决这个问题,我一直试图安装带有标志OpenCV的-DOPENCV_JAVA_TARGET_VERSION=11。然而,当我这样做时,我得到了以下错误:

代码语言:javascript
复制
[ 11%] Generating opencv-455.jar
cd /tmp/opencv-20220410-81173-p3o3uo/opencv-4.5.5/build/modules/java/jar/opencv && /usr/local/bin/ant -noinput -k jar
Picked up _JAVA_OPTIONS: -Duser.home=/Users/dpapp/Library/Caches/Homebrew/java_cache
Buildfile: /private/tmp/opencv-20220410-81173-p3o3uo/opencv-4.5.5/build/modules/java/jar/opencv/build.xml
   [tstamp] Honouring environment variable SOURCE_DATE_EPOCH which has been set to 1640404407

jar:
    [javac] Compiling 280 source files to /private/tmp/opencv-20220410-81173-p3o3uo/opencv-4.5.5/build/modules/java/jar/opencv/build/classes
    [javac] warning: target release 11 conflicts with default source release 18
Target 'jar' failed with message 'Compile failed; see the compiler error output for details.'.

BUILD FAILED
/private/tmp/opencv-20220410-81173-p3o3uo/opencv-4.5.5/build/modules/java/jar/opencv/build.xml:14: Compile failed; see the compiler error output for details

这个错误使它听起来像是OpenCV至少需要JDK 18,这听起来不对。每个OpenCV版本都有最低限度的JDK吗?我应该使用OpenCV 3来代替吗?任何帮助都是非常感谢的,谢谢!

EN

回答 1

Stack Overflow用户

发布于 2022-04-11 15:28:44

我已经部分弄清楚了这是怎么回事。

作为运行brew install opencv的prereq,我运行了brew install antbrew install ant安装最新的OpenJDK (编写本报告时的OpenJDK 18 ),并忽略在我的机器上设置的OpenJDK主路径。这导致brew install opencv试图在目标设置为11时使用Java18安装OpenCV,这会引发一个错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71821119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档