Windows系统下系统变量JAVA_HOME的设置,环境变量JAVA_HOME不能设置为多个Java的多个安装路径

时间:2022-12-12 11:14:39

一、常见存在问题的变量设置

1.JAVA_HOME以“\bin”结尾而不是以JDK版本号结尾{Note Below(NB):JAVA_HOME should NOT end with "\bin"};

2.JAVA_HOME中带有分号或结尾为分号(不管是否英文分号更别说是中文分号了){NB:You should haven't put a semicolon in the JAVA_HOME variable};

3.JAVA_HOME为多个Java的安装路径,即JAVA_HOME指向了多个Java的安装位置,尽管这无碍于Java的正常使用,但是对于许多以Java为依托平台的开发环境或框架而言,可能会出现问题,可能无法正常运行而报错,JAVA_HOME应该仅仅是一个目录名而不是像PATH一样由分号隔开各目录名的目录列举形式{NB:JAVA_HOME should be a single directory name, not "PATH-like" list of directory names separated by semicolons.}。

二、JAVA_HOME指向了多个Java安装目录后,使用Grails开发框架时出现的问题

附注:变量路径中若包含空格

若你的变量路径中包含空格,可以使用缩短形式的路径名,如“C:\Progra~1\Java\jdk1.8.0_65”。对于Windows 64位操作系统:

Progra~1 = 'Program Files'

Progra~2 = 'Program Files(x86)'

准备使用Grails开发框架,由于JDK对于Grails是必需的依托平台和依赖关系,于是安装了JDK,连同Java的JAVA_HOME(值为Java的安装目录——根目录,并是多个Java路径且没有以英文分号“;”作为JAVA_HOME的最后的字符,以JDK的版本号结尾而不是以“\bin”结尾的)、JRE_HOME和PATH也都配置好了,使用“java -version”命令也能说明JDK已经安装好。在配好Grails的GRAILS_HOME和PATH后,使用Grails命令“grails”或“grails -version”都不能正常运行Grails开发环境,在命令提示符窗口中提示:

Windows系统下系统变量JAVA_HOME的设置,环境变量JAVA_HOME不能设置为多个Java的多个安装路径[img=http://img.bbs.csdn.net/upload/201609/22/1474532983_922288.png][/img]

不知道这是否是因为没有权限设置这个环境变量(do not have privileges to set up the environmental variables),由于命令提示符提示符窗口提示是设置了一个非法的JAVA_HOME(JAVA_HOME is set to an invalid directory),于是我便试着修改JAVA_HOME,只留下一个Java的安装路径,Grails开发环境竟可以使用了,以下是在命令提示符窗口中先输入“grails -version”后再输入“grails”命令的运行情况:

Windows系统下系统变量JAVA_HOME的设置,环境变量JAVA_HOME不能设置为多个Java的多个安装路径

[img=http://img.bbs.csdn.net/upload/201609/22/1474533918_501369.png][/img]

三、后记:JAVA_HOME设置为多个以分号隔开的Java安装目录时的问题探析

不怎么太理解为什么JAVA_HOME设置为多个安装目录名时,Java能够正常使用,而其它依托于Java的框架或环境则可能出现这样或那样的问题,可能是依托Java的框架或环境在这个时候对于Java的引用存在分歧,因为,若你在这些框架或环境的运行配置文件中,将所有对Java的引用修改为具体引用的绝对路径名而不是“%变量名%”的形式时,可能无法正常运行的问题就迎刃而解了。若您对于这个问题有更好的想法或官方解释,请在评论区给出,分享知识,人人为我,我为人人!