我在编译java文件时成功了,但在运行结果时出现了Exception in thread “main" java.lang.UnsupportedClassVersionError(Unsupported major. minor version 50.0)
这是由较高版本的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编译器-百度百科
本回答被网友采纳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, 选择列表中相对应的版本进行手动更新。
本回答被网友采纳