1、一般来说,如果使用高版本jdk编译之后的class文件,编译的时候没有带source和targe参数,再把class文件放到低版本环境下运行,会出现如图所示的错误:java.lang.UnsupportedClassVersionError: Test : Unsupported major.minor version
2、下面来说下解决方法,首先写一个测试的java文件,如图所示,写一个最简单的例子,然后打印一段话
3、为了演示效果,我这里使用jdk1.8和1.7来做对比演示。先在jdk1.8下编译刚刚新建的Test.java文件
4、只是为了演示,我们使用命令行的方式来编译,javac 颍骈城茇-bootclasspath E:\rt1.7.jar -source 1.7 -target 1.7 Test.java,注意这里添瑕铆幌约加的三个,source是源码版本,targe是目标版本,bootclasspath一定要加上,否则虽然能编译通过但运行会存在问题,注意后面是引导jar文件,需要使用后面版本号对应的引导文件
5、然后复制class文件到jdk1.7下面,由于是同一台电脑同时存在两个版本,为了简单操作,直接将class复制到bin目录下面了
6、输入命令java Test运行测试下,如图所示,通过这样的方式已经可以成功的运行了
7、在项目中一般使用maven或者gradle构件项目,那么source和targe是在编译插件里控制的