如何在同一台机器上为不同项目配置适配不同的JAVA版本
多Java版本共存适配不同Spring Boot项目方案
1. 提前安装两个版本JDK
首先分别下载JDK8、JDK11的安装包完成安装,记录两个版本的安装路径:
- Windows默认路径示例:
C:\Program Files\Java\jdk1.8.0_xxx、C:\Program Files\Java\jdk-11.0.xxx - macOS/Linux默认路径示例:
/Library/Java/JavaVirtualMachines/jdk1.8.0_xxx.jdk/Contents/Home、/Library/Java/JavaVirtualMachines/jdk-11.0.xxx.jdk/Contents/Home
2. 命令行场景快速切换版本
Windows系统
先在系统环境变量中新建两个变量:
JAVA8_HOME:值为JDK8的安装路径JAVA11_HOME:值为JDK11的安装路径
需要切换全局版本时,修改JAVA_HOME变量的引用值为%JAVA8_HOME%或%JAVA11_HOME%即可。也可以写两个一键切换的bat脚本,放在系统路径下,双击即可切换当前窗口的Java版本。
macOS/Linux系统
在当前shell的配置文件(.bashrc/.zshrc等)中添加如下别名配置:
alias jdk8="export JAVA_HOME=$JAVA8_HOME && export PATH=$JAVA_HOME/bin:$PATH" alias jdk11="export JAVA_HOME=$JAVA11_HOME && export PATH=$JAVA_HOME/bin:$PATH"
配置完成后执行source ~/.zshrc(对应自己的shell配置文件路径)生效,之后在命令行输入jdk8或jdk11即可切换当前终端窗口的Java版本,不会影响其他终端。
3. 项目级绑定Java版本(无需手动切换)
Maven项目配置
在需要使用Java11的项目的pom.xml文件中添加如下配置,即可固定该项目的编译、运行版本:
<properties> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> <maven.compiler.release>11</maven.compiler.release> </properties> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <fork>true</fork> <executable>${JAVA11_HOME}/bin/javac</executable> </configuration> </plugin> </plugins> </build>
其他未做配置的Java8项目,默认使用全局的JDK8版本即可。
Gradle项目配置
在需要使用Java11的项目的build.gradle文件中添加如下配置:
java { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 } tasks.withType(JavaCompile) { options.fork = true options.forkOptions.javaHome = file(System.getenv("JAVA11_HOME")) }
4. IDE场景单独指定项目JDK版本
日常开发时直接在IDE中给每个项目单独配置JDK,不需要修改全局设置:
- IntelliJ IDEA:打开项目后依次进入
File -> Project Structure -> Project Settings -> Project,在SDK选项中选择对应项目需要的JDK版本,如果列表中不存在,点击Add SDK导入之前安装的JDK8/JDK11路径即可。也可以在Modules设置中给不同模块单独指定JDK版本,启动项目时也可以在启动配置中单独指定运行用的JDK。 - Eclipse:右键项目选择
Properties -> Java Build Path -> Libraries,移除原有JRE后点击Add Library -> JRE System Library -> Installed JREs,添加JDK8和JDK11的安装路径后,给当前项目选择对应版本即可。
版本验证
配置完成后可以通过以下命令验证当前生效的Java版本:
- 查看Java版本:
java -version - 查看当前JAVA_HOME路径:
echo $JAVA_HOME(macOS/Linux)、echo %JAVA_HOME%(Windows)
注意:Spring Boot版本需要和JDK版本兼容,使用JDK11时建议将对应项目的Spring Boot升级到2.1.x及以上版本,避免出现兼容性问题。
内容的提问来源于stack exchange,提问作者SHIVAM JINDAL
相关产品推荐
相关产品推荐

