您的位置首页百科问答

如何使用高版本的jdk编译代码在低版本上运行

如何使用高版本的jdk编译代码在低版本上运行

的有关信息介绍如下:

如何使用高版本的jdk编译代码在低版本上运行

使用java语言编写代码,需要使用到jdk将代码编译之后成class文件,才可以运行,但jdk也在不断的更新版本,新的版本可以向下兼容,也就是说低版本的jdk编译的文件可以在高版本的jdk环境下运行,但反过来会出现问题,那么下面就来介绍下如何使用高版本jdk编译然后在低版本jdk环境下运行

一般来说,如果使用高版本jdk编译之后的class文件,编译的时候没有带source和targe参数,再把class文件放到低版本环境下运行,会出现如图所示的错误:java.lang.UnsupportedClassVersionError: Test : Unsupported major.minor version

下面来说下解决方法,首先写一个测试的java文件,如图所示,写一个最简单的例子,然后打印一段话

为了演示效果,我这里使用jdk1.8和1.7来做对比演示。先在jdk1.8下编译刚刚新建的Test.java文件

只是为了演示,我们使用命令行的方式来编译,javac -bootclasspath E:\rt1.7.jar -source 1.7 -target 1.7 Test.java,注意这里添加的三个,source是源码版本,targe是目标版本,bootclasspath一定要加上,否则虽然能编译通过但运行会存在问题,注意后面是引导jar文件,需要使用后面版本号对应的引导文件

然后复制class文件到jdk1.7下面,由于是同一台电脑同时存在两个版本,为了简单操作,直接将class复制到bin目录下面了

输入命令java Test运行测试下,如图所示,通过这样的方式已经可以成功的运行了

在项目中一般使用maven或者gradle构件项目,那么source和targe是在编译插件里控制的