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

我在编译java文件时成功了,但在运行结果时出现了Exceptioninthread“main"java.lang.UnsupportedClassVersionErro... 我在编译java文件时成功了,但在运行结果时出现了Exception in thread “main" java.lang.UnsupportedClassVersionError(Unsupported major. minor version 50.0) 展开
 我来答
塔駡德
高粉答主

2018-09-28 · 关注我不会让你失望
知道答主
回答量:46
采纳率:0%
帮助的人:1.6万
展开全部

这是由较高版本的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编译器-百度百科

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友67bed773
2018-06-05 · TA获得超过1.1万个赞
知道小有建树答主
回答量:71
采纳率:100%
帮助的人:3.6万
展开全部

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

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

  3. 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,  选择列表中相对应的版本进行手动更新。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-24
展开全部
我自己的经验,很多人代码没有错,但是用JDK编译的时候却出错或执行的时候出现MAIN函数的错误, 我估计是你的代码里面有加上了package包,这个会使你的类路径不是当前路径,具体我也没研究,我一般都用工具来做开发. 还有你的类里面有内部类或嵌套类,这样虽然你编译了一个成功了,但是执行的话却会出错的.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hkyz257200
高粉答主

2018-05-22 · 醉心答题,欢迎关注
知道小有建树答主
回答量:205
采纳率:75%
帮助的人:6.5万
展开全部
一般情况下是classpath的原因,假设JDK的安装路径:E:\jdk Classpath:E:\jdk\lib\tools.jar; E:\jdk\lib\dt.jar 注意有个点,表示当前路径。 运行的时候确保你已经进入到class所在文件夹.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式