java.lang.UnsupportedClassVersionError即使$java_HOME是正确的

java.lang.UnsupportedClassVersionError即使$java_HOME是正确的,java,Java,main“java.lang.UnsupportedClassVersionError:org/mje/runjobj/main已由较新版本的java运行时(类文件版本58.0)编译,此版本的java运行时仅识别高达52.0的类文件版本 规格 ~%java-版本 java版本“1.8.0_261” Java(TM)SE运行时环境(build 1.8.0_261-b12) Java HotSpot(TM)64位服务器虚拟机(构建25.261-b12,混合模式) ~%javac-版本 JavaC1.

main“java.lang.UnsupportedClassVersionError:org/mje/runjobj/main已由较新版本的java运行时(类文件版本58.0)编译,此版本的java运行时仅识别高达52.0的类文件版本

规格

~%java-版本
java版本“1.8.0_261” Java(TM)SE运行时环境(build 1.8.0_261-b12) Java HotSpot(TM)64位服务器虚拟机(构建25.261-b12,混合模式)

~%javac-版本 JavaC1.8.0_261

~%echo$JAVA\u主页
/Library/Java/JavaVirtualMachines/jdk1.8.0ą。jdk/Contents/Home

这个网站解释了如何更改项目的JRE和编译器。对我来说,将JRE和编译器更改为Java的早期版本解决了这个问题。

Java本身不使用Java,它有时被使用Java的应用程序使用,比如maven或gradle或你的IDE(但他们往往有更可靠的方法来查找java的位置)

类文件版本58是javac14产生的

运行
javac-version
时报告v1.8.0的
javac
不可能生成此类文件。如果您从其他人那里获得此类文件,请他们在java8上重新编译(或在编译时使用
-release 8
),或下载并安装OpenJDK 14


如果是您自己生成的,那么无论是哪个进程生成的,在运行它时都没有使用响应为
1.8.0
javac
。您必须解释运行它的原因(maven?eclipse?intellij?gradle?)以获得更多帮助。

有什么解释吗?