Java 6下运行旧Spring应用报错需JDK 1.5及以上该如何解决
核心问题是旧版本Spring的JDK版本检测逻辑无法识别Java 7及以上版本号,会误判JDK版本低于1.5抛出异常,必须保证Tomcat运行时使用Java 6,仅调整编译版本无法解决问题
注意:Tomcat 9.0最低要求运行JDK版本为Java 8,无法兼容Java 6,若必须使用Java 6运行应用,请先将Tomcat版本降级至7.x系列,这是支持Java 6的最后一个Tomcat正式版本。
1. 修正Windows系统JDK优先级(可选,如果需要全局生效)
- 打开「系统属性-高级-环境变量」,在系统变量的
Path列表里,把Java 6的bin目录路径上移到所有JDK11相关路径的最顶部 - 修改完成后重启命令行窗口,重新执行
java -version,确认返回版本为Java 6再进行后续操作
2. 单独配置Tomcat运行JDK(推荐,不影响VSCode对JDK11的需求)
- 找到Tomcat 7.x的安装目录,进入
bin文件夹,新建名为setenv.bat的文件 - 文件内写入以下内容:
set JAVA_HOME=替换为你本地Java 6的绝对安装路径 set JRE_HOME=替换为你本地Java 6的jre文件夹绝对路径
- 保存文件后,直接通过Tomcat bin目录下的
startup.bat启动服务,不要通过VSCode的Tomcat插件启动,避免插件强制调用JDK11运行
3. 核对编译打包配置
如果你使用Maven构建项目,确认pom.xml中存在以下配置,保证编译版本符合要求:
<properties> <maven.compiler.source>1.6</maven.compiler.source> <maven.compiler.target>1.6</maven.compiler.target> <maven.compiler.compilerVersion>1.6</maven.compiler.compilerVersion> </properties>
修改完成后执行mvn clean package重新生成WAR包,放到Tomcat的webapps目录下启动测试即可。
临时启动方案(无需修改系统环境变量)
如果需要保留全局JDK11给VSCode使用,不用修改系统Path,每次启动Tomcat前单独打开命令行,依次执行以下命令即可:
set JAVA_HOME=替换为你本地Java 6的绝对安装路径 set Path=%JAVA_HOME%\bin;%Path% cd 替换为你的Tomcat bin目录绝对路径 startup.bat
内容的提问来源于stack exchange,提问作者Caleb Board
相关产品推荐
相关产品推荐

