gpt4 book ai didi

java.lang.UnsupportedClassVersionError 即使 java -version 和 javac -version 相同

转载 作者:行者123 更新时间:2023-12-02 09:46:20 26 4
gpt4 key购买 nike

在我的大学里,我们正在学习编写 RMI 应用程序。当我第一次尝试在 Eclipse 2019-03 中运行示例应用程序时,我遇到了错误:java.lang.UnsupportedClassVersionError 错误我成功运行了其他项目(非 RMI),没有任何问题。

当我运行时

java -version

我得到:

openjdk version "11.0.3" 2019-04-16
OpenJDK Runtime Environment (build 11.0.3+7-Ubuntu-1ubuntu218.04.1)
OpenJDK 64-Bit Server VM (build 11.0.3+7-Ubuntu-1ubuntu218.04.1, mixed mode, sharing)

javac -version

我得到:

javac 11.0.3

我在运行 Ubuntu 18.04 的系统上安装了 Java 8 和 11。在寻找问题的解决方案时,我发现了这个问题: How to fix java.lang.UnsupportedClassVersionError: Unsupported major.minor version

将 Eclipse 中编译器兼容级别的设置更改为 1.8 并更改项目特定设置对我有所帮助,我最终能够运行应用程序而不会出现任何错误。但这个解决方案并不令我满意。

当我运行时

update-alternatives --config java

update-alternatives --config javac

在这两种情况下都选择了 openjdk11。我不明白,如果我不更改编译器设置,为什么会收到错误。

其中一个答案表明这是错误设置的 $JAVA_HOME 变量。当我运行时:

jrunscript -e 'java.lang.System.out.println(java.lang.System.getProperty("java.home"));'

它确实给了我答案

/usr/lib/jvm/java-8-openjdk-amd64/jre

我尝试按照本指南将其更改为 openjdk11: https://askubuntu.com/questions/175514/how-to-set-java-home-for-java当我现在运行时

echo $JAVA_HOME

我得到:

/usr/lib/jvm/java-11-openjdk-amd64

但是当我运行时

jrunscript -e 'java.lang.System.out.println(java.lang.System.getProperty("java.home"));'

答案还是一样。

我希望能够使用 openjdk 11 来编译和运行代码,而无需更改 Eclipse 中的编译器设置。有人遇到同样的问题并给我提示吗?预先感谢您!

完整的错误如下:

java.lang.UnsupportedClassVersionError: chapter6/Counter has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0

最佳答案

在 Eclipse 中运行时,/etc/alternatives 会被忽略。相反,您可以单独定义要使用的 JDK/JRE。这可以在 Eclipse 首选项中全局设置,在项目属性中逐一设置,甚至在调试/运行配置中设置(以便在多个 java 版本中测试应用程序)。

关于java.lang.UnsupportedClassVersionError 即使 java -version 和 javac -version 相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56617286/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com