java - 不支持的主要.次要版本 52.0 mvn java SE 8

标签 java

我通过以下方式编译了代码: export JAVA_HOME=/usr/lib/jvm/java-8-oracle; mvn package 。我有:

Apache Maven 3.0.5
Maven home: /usr/share/maven
Java version: 1.8.0_101, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-8-oracle/jre
Default locale: cs_CZ, platform encoding: UTF-8
OS name: "linux", version: "3.16.0-77-generic", arch: "amd64", family: "unix"

但运行后 java -jar ...我收到错误:Unsupported major.minor version 52.0 有谁知道我做错了什么?我读过,当编译在较旧的 java 中但在较新的 java 中运行时会出现此错误,反之亦然,但我在这两种情况下都使用 java 8。

最佳答案

系统的默认 Java VM 集与运行 mvn (java8) 时使用的默认 Java VM 集不同(java7 或更早版本)。

你可以运行

/usr/lib/jvm/java-8-oracle/bin/java -jar

或者在 ~/.mavenrc 中设置 JAVA_HOME

JAVA_HOME=/usr/lib/jvm/java-8-oracle

如果您正在运行 Ubuntu,要“永远”修复它,您应该以 root 身份运行此命令:

sudo update-alternatives --config java

这将显示您的系统上安装的 java 替代方案,您将能够设置哪一个应该是默认的(在您的情况下是 java8)。

您可能想对其他 java 命令执行相同的操作,例如:

sudo update-alternatives --config javac
sudo update-alternatives --config java_vm
sudo update-alternatives --config jcontrol
sudo update-alternatives --config jexec

关于java - 不支持的主要.次要版本 52.0 mvn java SE 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39805456/

相关文章:

java - 用于验证网页上多个文本框的测试用例设计

java - 我可以在同一端口上运行多个 GRPC 服务吗

java - 发生整数溢出时无符号整数和有符号整数的行为差异

java序列化随机访问,很奇怪的事情!

java - Glassfish 4 - JDBC 领域

java - 带有 textview.setText 和 textview.append 的图像

java - Apache Commons DiffBuilder,深度比较

java - 对象适配器模式的使用案例

java - 如何将列名称添加到结果集中。我将 Java 与 EntityManager 一起使用

java - 如何在 java 中将 [10] 替换为 {ref10}