Java JNI错误Java.lang.UnsupportedClassVersionError

Java JNI错误Java.lang.UnsupportedClassVersionError,java,Java,我正在尝试运行以下简单的HelloWorld代码: public class HelloWorld{ public static void main(String[] args) { System.out.println("Hello, World"); } } 它编译得很好,但当我尝试运行它时,会出现以下错误: 我相信我有最新的jdk和jre。我是java新手,非常感谢您的帮助。是的,我看到过这样的问题,这是因为您用来编译代码的jdk版本与您在IDE上运行的jdk版本不一样,很可能

我正在尝试运行以下简单的HelloWorld代码:

public class HelloWorld{

public static void main(String[] args) {
    System.out.println("Hello, World");
}
}

它编译得很好,但当我尝试运行它时,会出现以下错误:


我相信我有最新的jdk和jre。我是java新手,非常感谢您的帮助。

是的,我看到过这样的问题,这是因为您用来编译代码的jdk版本与您在IDE上运行的jdk版本不一样,很可能是Eclipse

您可以在以下位置更改设置:
项目属性->Java构建路径->库->选择首选JRE编译器

是的,出现了这样的问题,这是因为您用来编译代码的jdk版本与您在IDE上运行的jdk版本不一样,很可能是Eclipse

您可以在以下位置更改设置:
项目属性->Java构建路径->库->从您发布的Windows命令提示符映像中选择首选JRE编译器,看起来您在Windows 7上。 where命令将显示文件java.exe和javac.exe的路径。 在命令提示下输入以下命令:

where java.exe
在安装了JDK 12.0.1的Windows 10计算机上,上述命令的输出为:

C:\Program Files\Java\jdk-12.0.1\bin\java.exe
对于javac.exe

javac.exe的文件夹必须包含在PATH环境变量中,否则where命令将找不到它

路径中不需要包含java.exe的文件夹。您可能已经定义了JAVA_HOME环境变量,但即使这样也不是必需的

在任何情况下,正如其他人所说,JDK的较低版本都不能运行使用较高版本编译的代码,尽管允许使用相反的版本,也就是说,您可以使用较低版本编译,然后使用较高版本运行

看起来您安装了多个JDK或JRE版本。您需要决定要使用哪一个,并修改PATH环境变量,使其包含包含文件javac.exe的所需文件夹


如果您不需要安装多个java版本,我建议您只需删除所有不需要的java版本。

从您发布的Windows命令提示符映像中,看起来您使用的是Windows 7。 where命令将显示文件java.exe和javac.exe的路径。 在命令提示下输入以下命令:

where java.exe
在安装了JDK 12.0.1的Windows 10计算机上,上述命令的输出为:

C:\Program Files\Java\jdk-12.0.1\bin\java.exe
对于javac.exe

javac.exe的文件夹必须包含在PATH环境变量中,否则where命令将找不到它

路径中不需要包含java.exe的文件夹。您可能已经定义了JAVA_HOME环境变量,但即使这样也不是必需的

在任何情况下,正如其他人所说,JDK的较低版本都不能运行使用较高版本编译的代码,尽管允许使用相反的版本,也就是说,您可以使用较低版本编译,然后使用较高版本运行

看起来您安装了多个JDK或JRE版本。您需要决定要使用哪一个,并修改PATH环境变量,使其包含包含文件javac.exe的所需文件夹


如果您不需要安装多个java版本,我建议您只需删除所有不需要的版本。

您的java版本为1.8,而javac版本为12。在Java的更高版本中编译的代码不能由Java的早期版本执行。检查您的环境变量。@slaw那么您是说我需要下载jdk 8?您似乎已经安装了Java 8,但我不知道是jdk还是只安装了JRE和Java 12。我想说的是,您需要检查您的环境变量,例如JAVA_HOME、PATH,以确保它们配置正确,即所有内容都指向同一版本。您的路径是什么样子?@Slaw这是我的路径:C:\Program Files x86\Common Files\Oracle\Java\javapath;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files x86\ATI Technologies\ATI.ACE\Core Static;C:\ProgramFiles\dotnet\;C:\Program Files\Tesseract OCR;C:\Program Files\Java\jdk-12.0.1\b第一个条目,…\Oracle\Java\javapath可能间接指向Java 8,并且可能是在安装Java 8时添加的。但是,这个条目不包括像javac这样的工具,所以这些工具由您的最后一个条目来选择:…\jdk-12.0.1\bin。您的java版本是1.8,而javac版本是12。在Java的更高版本中编译的代码不能由Java的早期版本执行。检查您的环境变量。@slaw那么您是说我需要下载jdk 8?您似乎已经安装了Java 8,但我不知道是jdk还是只安装了JRE和Java 12。我想说的是,您需要检查您的环境变量,例如JAVA_HOME、PATH,以确保它们配置正确,即所有内容都指向同一版本。你的工作是什么
路径看起来像?@Slaw这是我的路径:C:\ProgramFilesx86\Common Files\Oracle\Java\javapath;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files x86\ATI Technologies\ATI.ACE\Core Static;C:\ProgramFiles\dotnet\;C:\Program Files\Tesseract OCR;C:\Program Files\Java\jdk-12.0.1\b第一个条目,…\Oracle\Java\javapath可能间接指向Java 8,并且可能是在安装Java 8时添加的。但是,这个条目不包括像javac这样的工具,所以这些工具由您的最后一个条目来选择:…\jdk-12.0.1\bin。