这是我的Java环境:~: java -version java version "11.0.1" 2018-10-16 LTS Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS) Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode)但是在编译后尝试执行程序时,出现以下错误:Error: LinkageError occurred while loading main class ClassName java.lang.UnsupportedClassVersionError: ClassName 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 54.0我的 PATH 和 JAVA_HOME 变量都指向这个版本的 java。我下载了其他版本,但似乎它们没有在系统中注册:update-alternatives --display javajava - auto mode link best version is /usr/lib/jvm/java-11-openjdk-amd64/bin/java link currently points to /usr/lib/jvm/java-11-openjdk-amd64/bin/java link java is /usr/bin/java slave java.1.gz is /usr/share/man/man1/java.1.gz/usr/lib/jvm/java-11-openjdk-amd64/bin/java - priority 1101 slave java.1.gz: /usr/lib/jvm/java-11-openjdk-amd64/man/man1/java.1.gz那么不同版本的编译和执行是如何完成的呢?
3 回答
慕森王
TA贡献1777条经验 获得超3个赞
问题是可以通过我的 PATH 变量访问其他下载的 Java 版本。因此,在编译和执行我的程序时指定 javac 和 java 可执行文件的完整路径后,它就可以工作了。
Smart猫小萌
TA贡献1911条经验 获得超7个赞
与 sudo 命令一起使用更新替代方案 --config javac 和 java。因此,您可以为编译器和运行时环境选择相同版本的 java。
编译我的java程序后我也遇到了同样的错误。我有截图---->

萧十郎
TA贡献1815条经验 获得超13个赞
当您尝试更改 java .class 文件的内容时,也会发生此错误。字节码验证程序会生成此错误,例如。
错误:加载主类 Hello 时发生 LinkageError java.lang.UnsupportedClassVersionError:Hello 已由更新版本的 Java Runtime(类文件版本 8251.8224)编译,此版本的 Java Runtime 仅识别最高 59.0 的类文件版本
添加回答
举报
0/150
提交
取消
