windows系统java启动时如何指定jdk?
在日常的开发环境中,我们一般在我们的机器上安装一个jdk,然后再通过配置环境变量的方式,实现java命令的使用。
但是,在日常项目中,我们经常会遇到一种情况,那就是服务器上已经安装了一个jdk了,但是不符合我们的版本,比如windows服务器上,安装了一个jdk8,而且还配置好了环境变量。
这种情况下,我们是不能修改关于这个jdk8的配置的,尤其是环境变量,万一引起其他的程序不能运行,就是我们的锅了,而我们需要的jdk版本是17。
这种情况该怎么办呢?
所以,最理想的情况就是,我们自己安装一个jdk17,然后在程序运行的时候指定运行的jdk就是我们安装的jdk17,这样就可以完美避免这个问题了。
以下就是在linux 和 windows 系统下,指定jdk版本运行java程序的命令。
linux
假设jdk的目录是和你的jar程序在一个目录下,然后在这个目录,执行以下命令:
1 |
|
进阶:
我们可以把上面的启动命令,写到一个bash文件里,比如叫start.sh
, 然后在启动程序的时候,直接执行:
1 |
|
这样,我们就不用记忆繁琐的启动命令了,尤其是启动命令里还有很多参数的情况下。
windows
假设jdk的目录是和你的jar程序在一个目录下,然后在这个目录,打开CMD命令终端,执行以下命令:
1 |
|
注意,表示jdk目录的路径,一定要加引号,才能被CMD程序识别成一个整体,否则会报错。
当然,win10以后,windows上有了一个新的命令终端,叫powershell,这个命令终端,在使用习惯上更贴近linux,所以,也可以去掉多余的引号:
1 |
|
进阶:
在windows下,我们同样也可以把上面的windows命令写入一个bat文件,比如叫start.bat
。
然后在启动程序的时候,直接双击这个脚本,程序就可以自动执行了,更简单。
总结
其实有些年头编程经验的朋友都明白,所谓的环境变量,就是把我们常用的一些程序的目录,存储到系统的配置里。
这样,当我们在命令行里直接输入一个命令时,比如java
,系统会去我们配置的路径里找这个命令,然后在配置环境变量的jdk8目录里,找到java命令,然后执行这个命令。
本质上还是调用对应目录下的java命令。
所以,可以理解为,这就是一个语法糖。
同样的,如果我们想要指定java程序的运行jdk或jre,只要通过这个目录下的java可执行程序运行这个程序就可以了。