windows系统java启动时如何指定jdk?

在日常的开发环境中,我们一般在我们的机器上安装一个jdk,然后再通过配置环境变量的方式,实现java命令的使用。

但是,在日常项目中,我们经常会遇到一种情况,那就是服务器上已经安装了一个jdk了,但是不符合我们的版本,比如windows服务器上,安装了一个jdk8,而且还配置好了环境变量。
这种情况下,我们是不能修改关于这个jdk8的配置的,尤其是环境变量,万一引起其他的程序不能运行,就是我们的锅了,而我们需要的jdk版本是17。

这种情况该怎么办呢?

所以,最理想的情况就是,我们自己安装一个jdk17,然后在程序运行的时候指定运行的jdk就是我们安装的jdk17,这样就可以完美避免这个问题了。

以下就是在linux 和 windows 系统下,指定jdk版本运行java程序的命令。

linux

假设jdk的目录是和你的jar程序在一个目录下,然后在这个目录,执行以下命令:

1
2
3
jdk-17.0.12/bin/java  -jar your_app.jar
# 或绝对路径
/home/jdk-17.0.12/bin/java -jar your_app.jar

进阶:
我们可以把上面的启动命令,写到一个bash文件里,比如叫start.sh, 然后在启动程序的时候,直接执行:

1
bash start.sh

这样,我们就不用记忆繁琐的启动命令了,尤其是启动命令里还有很多参数的情况下。

windows

假设jdk的目录是和你的jar程序在一个目录下,然后在这个目录,打开CMD命令终端,执行以下命令:

1
2
3
4
5
6
7
".\jdk-17.0.12\bin\java.exe" -jar your_app.jar
# 或
"jdk-17.0.12\bin\java.exe" -jar your_app.jar
# 或
"jdk-17.0.12/bin/java.exe" -jar your_app.jar
# 或绝对路径
"C:\Program Files\Java\jdk-17.0.12\bin\java.exe" -jar your_app.jar

注意,表示jdk目录的路径,一定要加引号,才能被CMD程序识别成一个整体,否则会报错。

当然,win10以后,windows上有了一个新的命令终端,叫powershell,这个命令终端,在使用习惯上更贴近linux,所以,也可以去掉多余的引号:

1
.\jdk-17.0.12\bin\java.exe -jar your_app.jar

进阶:
在windows下,我们同样也可以把上面的windows命令写入一个bat文件,比如叫start.bat
然后在启动程序的时候,直接双击这个脚本,程序就可以自动执行了,更简单。

总结

其实有些年头编程经验的朋友都明白,所谓的环境变量,就是把我们常用的一些程序的目录,存储到系统的配置里。
这样,当我们在命令行里直接输入一个命令时,比如java,系统会去我们配置的路径里找这个命令,然后在配置环境变量的jdk8目录里,找到java命令,然后执行这个命令。

本质上还是调用对应目录下的java命令。

所以,可以理解为,这就是一个语法糖。

同样的,如果我们想要指定java程序的运行jdk或jre,只要通过这个目录下的java可执行程序运行这个程序就可以了。


windows系统java启动时如何指定jdk?
https://www.hancher.top/2025/02/22/java-java-with-specify-jdk/
作者
寒澈
发布于
2025年2月22日
许可协议