之前在mooc平台上接触过Java,当时直接跟着老师装上Java和eclipse在eclipse上写代码,过程很顺利。现在想从头扎扎实实地系统学习Java,老师演示了用记事本写Java程序并通过控制台运行,没想到我的第一个输出程序就这样翻车了。。。
记事本中输入:
命名为Welcome.java ,保存在D:/myjavacode 文件夹中
控制台中输入指令:
虽然中间由于;写成汉语分号,报了次错,改正之后成功地将源代码编译成字节码文件,后缀名为.class
但用Java虚拟机解释执行字解码文件时,出现报错,搞了大半小时才搞好。。。报错如下:
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: Welcome has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
报错中一句话:Welcome has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
由此推测可能是安装版本的问题,在网上搜了下相关问题,在控制台查了果然Java和Javac的版本不同,这就是问题所在!
之前电脑安装过Java和eclipse,之前安装过JRE,而JDK包含JRE,这就导致两次安装的JDK不同!运行java命令时,从系统变量path 前面开始找,找到了就不会往后面找了,因此系统变量Path中配置的java.exe和javac.exe不同。
结论:解决版本不一致方法:把path 里的 %JAVA_HOME%\bin; 放到最前面即可。
然后重启控制台输入指令,成功运行!(一定要重启控制台!)
2019-02-10 22:39:30 房廷飞 Come on ! 期待明天更好的自己!
原文地址:https://www.cnblogs.com/fangtingfei/p/10360554.html