我通过以下方式编译了代码: 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/