Exception in thread "main" java.lang.UnsupportedClassVersionError 和error:A JNI error has occureed


程序报错:

Exception in thread "main" java.lang.UnsupportedClassVersionError: TestMapRed

解决办法:

原因:这个问题是由较高版本的JDK编译的java class文件试图在较低版本的JVM上运行产生的错误。
方法一:
保证jvm(java命令)和jdk(javac命令)版本一致。如果是windows版本,则在命令行中分别输入java -version和javac -version命令来查看版本是否一致。
如果版本一致:请看方法二。

如果版本不一致:修改环境变量ClassPath,
然后把系统中的不需要的版本删除,卸载。
重新启动,删除javac,生成的 * .class(*代表主类名),重新生成。
方法二:
如果都一致,但还是解决不了问题,那么你肯定不是直接在命令行中用javac来编译的,而是用类似于eclipse、netbeans这样的编译器来编译的。因为很多编译器都自带javac,而不是采用操作系统中的编译器。如果你的编译器是eclipse的话,那么需要在项目的属性里设置jdk版本,方法是

右击项目(project)-->properties (如果properties是灰色,请看下面解决方法)
-->java compiler --> Enable project specific settings -->
compiler compliance level

将compiler compliance level设置的版本与jvm的版本一致(在命令行中java -version所显示的版本)。
综上,如果你是用编译器来编译的话,请首先确保编译器自带的jdk版本是否和操作系统中的java版本一致。

eclipse打开后project下面properties是灰色的问题:
Exception in thread
没有选中工程,工程的属性就是灰色的
一:
Exception in thread
二;
Exception in thread


eclipse报错:

Exception in thread

解决办法:

方法一:
原因:自己定义的包的路径以java(无论大小写)开头造成。
java的类加载器在加载文件时,之前已经加载了以java开头的包路径,也就是rt.jar里面的内容。为了安全,会阻止自定义的包名以java开头。
解决方法:改变包的名,不要以java开头
方法二:
一般这两个错误是一起出现的。解决方法也都差不多,方法二就是参考第一个问题的解决方法。

参考文章:https://www.cnblogs.com/qnly/p/10477378.html
https://blog.csdn.net/qq_33532713/article/details/87198446

你可能感兴趣的:(JAVA)