java编译中出现了exceptioninthread“main"java.lang.unsupportedclassversionerror

author author     2023-05-01     560

关键词:

我在编译java文件时成功了,但在运行结果时出现了Exception in thread “main" java.lang.UnsupportedClassVersionError(Unsupported major. minor version 50.0)

       这个问题确实是由较高版本的JDK编译的java class文件试图在较低版本的JVM上运行产生的错误。

    1、解决措施就是保证jvm(java命令)和jdk(javac命令)版本一致。如果是linux版本,则在命令行中分别输入java -version和javac -version命令来查看版本是否一致。这里假设都是1.7版本。

    2、如果都一致,但还是解决不了问题,那么你肯定不是直接在命令行中用javac来编译的,而是用类似于eclipse、netbeans这样的编译器来编译的。因为很多编译器都自带javac,而不是采用操作系统中的编译器。如果你的编译器是eclipse的话,那么需要在项目的属性里设置jdk版本,方法是右击项目-->properties-->java compiler --> Enable project specific settings -->将compiler compliance level设置为1.7,也就是与jvm一致的版本(在命令行中java -version所显示的版本)。

    综上,如果你是用编译器来编译的话,请首先确保编译器自带的jdk版本是否和操作系统中的java版本一致。

见下图:

参考技术A

这个问题是由较高版本的JDK编译的java class文件试图在较低版本的JVM上运行产生的错误。

1、解决措施就是保证jvm(java命令)和jdk(javac命令)版本一致。如果是linux版本,则在命令行中分别输入java -version和javac -version命令来查看版本是否一致。这里假设都是1.7版本。

2、如果都一致,但还是解决不了问题,那么你肯定不是直接在命令行中用javac来编译的,而是用类似于eclipse、netbeans这样的编译器来编译的。因为很多编译器都自带javac,而不是采用操作系统中的编译器。如果你的编译器是eclipse的话,那么需要在项目的属性里设置jdk版本,方法是右击项目-->properties-->java compiler --> Enable project specific settings -->将compiler compliance level设置为1.7,也就是与jvm一致的版本(在命令行中java -version所显示的版本)。

3、综上,如果你是用编译器来编译的话,请首先确保编译器自带的jdk版本是否和操作系统中的java版本一致。一般是jdk和jvm版本不一致导致,可以在cmd命令下输入java -version和javac -version看版本是否一致,不一致的话需要改JAVA_HOME保证一致。

拓展资料:

Java 异常处理

异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。异常发生的原因有很多,通常包含以下几大类:

1、用户输入了非法数据。

2、要打开的文件不存在。

3、网络通信时连接中断,或者JVM内存溢出。

这些异常有的是因为用户错误引起,有的是程序错误引起的,还有其它一些是因为物理错误引起的。要理解Java异常处理是如何工作的,你需要掌握以下三种类型的异常:

1、检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。

2、运行时异常: 运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。

3、错误: 错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,它们在编译也检查不到的。

参考资料:Java 异常处理_w3cschool

参考技术B

这个问题确实是由较高版本的JDK编译的java class文件试图在较低版本的JVM上运行产生的错误。

1、解决措施就是保证jvm(java命令)和jdk(javac命令)版本一致。如果是linux版本,则在命令行中分别输入java -version和javac -version命令来查看版本是否一致。这里假设都是1.7版本。

2、如果都一致,但还是解决不了问题,那么你肯定不是直接在命令行中用javac来编译的,而是用类似于eclipse、netbeans这样的编译器来编译的。因为很多编译器都自带javac,而不是采用操作系统中的编译器。如果你的编译器是eclipse的话,那么需要在项目的属性里设置jdk版本,方法是右击项目-->properties-->java compiler --> Enable project specific settings -->将compiler compliance level设置为1.7,也就是与jvm一致的版本(在命令行中java -version所显示的版本)。

综上,如果你是用编译器来编译的话,请首先确保编译器自带的jdk版本是否和操作系统中的java版本一致。

扩展资料:

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程  。

Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

编程工具

Eclipse:一个开放源代码的、基于Java的可扩展开发平台。

NetBeans:开放源码的Java集成开发环境,适用于各种客户机和Web应用。

IntelliJ IDEA:在代码自动提示、代码分析等方面的具有很好的功能。

MyEclipse:由Genuitec公司开发的一款商业化软件,是应用比较广泛的Java应用程序集成开发环境 。

EditPlus:如果正确配置Java的编译器“Javac”以及解释器“Java”后,可直接使用EditPlus编译执行Java程序 。

参考资料:百度百科:Java

参考技术C

这个问题确实是由较高版本的JDK编译的java class文件试图在较低版本的JVM上运行产生的错误,可以通过下述方法进行解决:

1、检查jvm(java命令)和jdk(javac命令)版本是否一致。如果是linux版本,则在命令行中分别输入java -version和javac -version命令来查看版本是否一致。 

2、如果都一致,但还是解决不了问题,那么肯定不是直接在命令行中用javac来编译的,而是用类似于eclipse、netbeans这样的编译器来编译的。因为很多编译器都自带javac,而不是采用操作系统中的编译器。

3、如果你的编译器是eclipse的话,那么需要在项目的属性里设置jdk版本,方法是右击项目-->properties-->java compiler --> Enable project specific settings -->将compiler compliance level设置为1.7,即可解决问题。

拓展资料:

编译时首先读入java源程序(即在MS-DOS命令行下键入javac HelloWorld.java等文件名参数和其他选项参数),然后进行语法检查,如果出现问题就终止编译。语法检查通过后,生成中间代码即字节码,字节码文件名和源文件名相同,扩展名为.class。

参考资料:百度百科-JAVA编译器

参考技术D

出现这种情况是由较高版本的JDK编译的java class文件试图在较低版本的JVM上运行产生的错误。

1、解决措施就是保证jvm(java命令)和jdk(javac命令)版本一致。如果是linux版本,则在命令行中分别输入java -version和javac -version命令来查看版本是否一致。这里假设都是1.7版本。

2、如果都一致,但还是解决不了问题,那么你肯定不是直接在命令行中用javac来编译的,而是用类似于eclipse、netbeans这样的编译器来编译的。因为很多编译器都自带javac,而不是采用操作系统中的编译器。直接在命令行中用javac来编译就好了。

扩展资料:

javac 工具读取用 Java 编程语言编写的类和接口定义,并将它们编译成字节码类文件。

有两种方法可将源代码文件名传递给 javac:

如果源文件数量少,在命令行上列出文件名即可。

如果源文件数量多,则将源文件名列在一个文件中,名称间用空格或回车行来进行分隔。然后在 javac 命令行中使用该列表文件名,文件名前冠以 @ 字符。

参考资料:百度百科-javac编译器

参考资料:百度百科-JAVA

vscode编译java程序出现nosuchmethoderror的解决方法

...Debian中使用vscode编写了一个简单的java反射机制项目,在编译项目代码的时候出现如下错误:  Exceptioninthread"main"java.lang.NoSuchMethodError   进行断点调试,调试进入类中的某个方法时中断了,检查代码却发现没有写错,... 查看详情

java中报错出现需要“.class”怎么解决?

...行的是.class字节码文件,代码编写完成后需要对代码进行编译,编译后的文件就是.class文件。提示:需要“.class”,建议重新编译后再试。参考技术A程序中调用了某一个样式表文件(.class后缀的文件)解决方法:看看在程序里... 查看详情

在java中序列化中的一个简单程序出现编译错误

】在java中序列化中的一个简单程序出现编译错误【英文标题】:Gettingacompilationerrorforasimpleprograminserializationinjava【发布时间】:2016-11-1501:42:17【问题描述】:这是我的Person类packagecom.igate.serilaization;importjava.io.Serializable;publicclassPer... 查看详情

java编程中出现的错误“非法字符:\56288”是啥意思?

如果VC编译器出现如此错误提示"stray'\161'inprogtam",说明你用了全角符号的空格。直接从网上拷贝代码贴到DevC++中会经常遇到stray'\161'inprogram错误,其实问题出在代码中掺入了一些不合法的空格(全角空格... 查看详情

java编译中出现stsytem程序包不存在错误

这主要是因为将System开头的大写S打成了小写s,改回来就行了。2如果出现错误:找不到符号符号类string那就是把(String[]args)里大写的S写成了小写的s,改回来就行了。追问你好,我看过了,字母s是大写参考技术A应用程序发生异常... 查看详情

linux环境下手动编译java(非eclipse环境),出现packagejunit.frameworkdoesnotexist应如何设置?

...va/junit-3.8.2.jar和/usr/share/java都加入了CLASSPATH变量中,但是编译依然出现如下错误:error:packagejunit.frameworkdoesnotexist[java][javac]importjunit.framework.Test;请问是环境变量设置有问题还是安装的包不正确啊?CLASSPATH值设定如下:/usr/sha... 查看详情

为啥 Java 会出现“无法访问的语句”编译器错误?

】为啥Java会出现“无法访问的语句”编译器错误?【英文标题】:WhydoesJavahavean"unreachablestatement"compilererror?为什么Java会出现“无法访问的语句”编译器错误?【发布时间】:2011-04-1706:31:31【问题描述】:在调试程序时,... 查看详情

java编程中出现javax.servlet.*类不存在怎么解决

首先说明下,我现在的程序不能用Eclipse和NetBeans等不能编译的软件,因为我要的不是程序的运行结果,而是程序编译时生成的.class文件。我所用的是JCreator,编译时提示软件包javax.servlet不存在,另外我的环境变量也配置了,如果... 查看详情

在用mvn编译java文件时遇到问题

...置有问题,找到问题解决就ok了!!!问题二:无法用mvn编译java文件这个问题是由于pom.xml文件出现了问题,我们把pom文件改好就ok了,pom文件对于maven很重要,所有的配置都在pom.xml文件中,一定要把它搞熟悉,那后面的工作也就... 查看详情

使用 fltk 时文本未出现在编译窗口中

】使用fltk时文本未出现在编译窗口中【英文标题】:Textnotappearinginthecompiledwindowwhileusingfltk【发布时间】:2020-05-2418:38:53【问题描述】:我正在阅读《C++编程原理与实践》一书。我正在学习如何使用fltk(第12章),并且我已经成... 查看详情

按照第一个 hello world 示例在 VS2010 中出现编译错误

】按照第一个helloworld示例在VS2010中出现编译错误【英文标题】:GettingacompilationerrorinVS2010byfollowingthefirsthelloworldexample【发布时间】:2011-05-1308:28:32【问题描述】:我刚开始学习MFC..在这里找到了一个教程http://bit.ly/j2uhHO..刚刚在VS2... 查看详情

java为啥文件不加入source中编译就出现sourcenotfound

...的文件如果不存在,没有导入到资源文件夹中,就会导致编译期间,提示该资源找不到的错误,程序直接退出。java的编译过程是这样的,从main方法进入,一段段代码放到内存进行编译,当碰到引用的资源,便会去source里面找给... 查看详情

java-编译后出现$1.class$2.class等多个class文件

部署代码的时候,由于自身技术不精和疏忽,导致查询数据没有正常显示,排除法最后只能是放置部署文件时未包括多出来的$class文件。放上去之后果然好使了,才记录下这个问题。。。这是因为在我们写的类中存在匿名类对于... 查看详情

为啥我在 C++ 阶乘函数中出现编译错误?

】为啥我在C++阶乘函数中出现编译错误?【英文标题】:WhyamIgettingacompilationerrorinaC++factorialfunction?为什么我在C++阶乘函数中出现编译错误?【发布时间】:2020-09-1816:52:45【问题描述】:我正在尝试使用三元运算符在C++中编写一个... 查看详情

SEGFAULT 出现在 DevC++ 中,但不出现在其他编译器中

】SEGFAULT出现在DevC++中,但不出现在其他编译器中【英文标题】:SEGFAULToccursinDevC++butnotinothercompilers【发布时间】:2020-08-1008:06:49【问题描述】:我必须为2d点构建一个2d树。在插入节点时,我正在检查树是否已经包含相同的点。... 查看详情

android编译错误记录(代码片段)

记录下在开发过程中遇到的问题:编译器(1.8.0_121)中出现异常错误。一、问题描述  build项目时报错:编译器(1.8.0_121)中出现异常错误。编译器(1.8.0_121)中出现异常错误。如果在BugDatabase(http://bugs.java.com)中没有找到该错误... 查看详情

android编译错误记录(代码片段)

记录下在开发过程中遇到的问题:编译器(1.8.0_121)中出现异常错误。一、问题描述  build项目时报错:编译器(1.8.0_121)中出现异常错误。编译器(1.8.0_121)中出现异常错误。如果在BugDatabase(http://bugs.java.com)中没有找到该错误... 查看详情

android编译错误记录(代码片段)

记录下在开发过程中遇到的问题:编译器(1.8.0_121)中出现异常错误。一、问题描述  build项目时报错:编译器(1.8.0_121)中出现异常错误。编译器(1.8.0_121)中出现异常错误。如果在BugDatabase(http://bugs.java.com)中没有找到该错误... 查看详情