java编译中出现了Exception in thread “main" java.lang.UnsupportedClassVersionError

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

第1个回答  2018-09-28

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

在安装jdk时候,jre不要装同一目录,否则覆盖了之后javac.exe就没了,环境变量%JAVA_HOME%结尾不要加分号,不然其他相关引用后面就多了分号。

解决方式:

你的编译器是eclipse的话,那么需要在项目的属性里设置jdk版本,方法是右击项目-->properties-->java compiler --> Enable project specific settings -->将compiler compliance level设置为1.7,也就是与jvm一致的版本(在命令行中java -version所显示的版本)。

扩展资料:

JAVA编译器(javac.exe)的作用是将java源程序编译成中间代码字节码文件,是最基本的开发工具。

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

Java以跨平台、面向对象、多线程、兼具编译型语言和解释型语言、稳定性好、安全性强的特点,以及与Internet的完美结合而取得成功。

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

本回答被网友采纳
第2个回答  2013-09-24
出现java.lang.UnsupportedClassVersionError 错误的原因,是因为我们使用高版本的JDK编译的Java class文件试图在较低版本的JVM上运行,所报的错误。
因为,高版本的JDK生成的class文件使用的格式,可能与低版本的JDK的.class文件格式不同。这样,低版本的JVM无法解释执行这个.class文件,会抛出java.lang.UnsupportedClassVersionError不支持的Class版本错误。
这个错误尤其在JDK5与JDK5之前的版本上表现明显。因为,JDK5在Java语法上作了不少增强,引入了一些新的.class文件的元素,导致旧版本的JVM无法解释、执行.class文件。即使这个类并没有使用任何JDK5的新元素,但是JDK5生成的.class文件,JDK1.4及其以前的JVM都无法辨认!本文来自CSDN博客,转载请标明出处: http://blog.csdn.net/cyhgohappy/archive/2008/10/13/3069799.aspx
第3个回答  2018-06-05

    Exception in thread "main" java.lang.Unsupported.lassVersionError: M : Unsupported major.minor version 51.0.

    java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:643)

    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
    Could not find the main class: M. Program will exit.

javac 和 java版本不一致的问题,在Linux下, 执行 java -version 和 javac -version可以查看它们的版本信息。

通过比较,找出是java还是javac的版本不一致, 然后在命令行下执行 sudo update-alternatives --config java/javac,  选择列表中相对应的版本进行手动更新。

本回答被网友采纳
第4个回答  2013-09-24
我自己的经验,很多人代码没有错,但是用JDK编译的时候却出错或执行的时候出现MAIN函数的错误, 我估计是你的代码里面有加上了package包,这个会使你的类路径不是当前路径,具体我也没研究,我一般都用工具来做开发. 还有你的类里面有内部类或嵌套类,这样虽然你编译了一个成功了,但是执行的话却会出错的.
第5个回答  2018-05-22
一般情况下是classpath的原因,假设JDK的安装路径:E:\jdk Classpath:E:\jdk\lib\tools.jar; E:\jdk\lib\dt.jar 注意有个点,表示当前路径。 运行的时候确保你已经进入到class所在文件夹.