前言
初学Java不久的二胖在搭建Java开发环境一步就遇到问题,他不由得感叹:万事开头难啊!但感叹之后它还是鼓足了劲去努力解决它,二胖在电脑上Google了一番,最终环境是搭建成功了,但他心中对"环境变量配置"这一步还是有很多疑惑,思来想去,二胖决定向自己好友Bill大神求助。
正文
以下为二胖与Bill的对话:
二胖:好久不见,Bill,最近过得咋样?
Bill:哈哈哈哈,你小子是不是又遇到什么问题了,说来听听。
二胖:还是你了解我,我最近在自学java,你知道的,学习一门编程语言的第一步就是搭建语言的开发环境,我已经把jdk下载安装好了,按照网上的教程下一步就是配置环境变量了,可是我有点不懂为啥要配置它。
Bill:看来你小子已经在思考问题了,不错不错,但是在回答你这个问题之前,我想先问问你:你注意到jdk下面的bin目录了吗,你知道这个目录中的内容是什么吗?
二胖:这个...我去查查看,哦,bin目录下存放的是jdk的各种工具命令,可这跟配置环境变量有啥关系?
Bill:别急,慢慢来。你说得对,这些工具命令都是用来操作java程序的,那你知道这些命令怎样执行吗?
二胖:这个问题我还是知道的,使用cmd就可以了嘛,直接进入该命令的目录中,输入命令名称即可。
Bill:没错,但是问题就在这,我们如果要使用jdk的这些工具命令,就需要进到bin目录中才行。
二胖:这是肯定的啊,额...不过这么说好像确实有点问题:我以后编写的各种java程序的目录是不确定的,但是又需要使用bin目录下的这些工具命令,这该怎么办呢?
Bill:对,学习就是应该这样,遇到问题不要紧,一定要善于思考。其实这其中还包含一个小小的原理,那就是WINDOWS系统到底是怎样查找可执行程序的?
二胖:你接着说。
Bill:当你在cmd窗口运行某个命令时,WINDOWS操作系统会先在当前目录下查找该命令,就像下面这样:
;
若未找到就再去环境变量中的path系统变量中查找该命令,就像下面这样:
;
若还是未找到,就会报错:不是内部或外部命令,也不是可运行的程序或批处理文件。
二胖:原来是这样,那我是不是可以把这个bin目录配置到path中呢?
Bill:反应可真是快,就是这样,我们把这个配置的过程就叫做环境变量配置。
不过你得注意了,配置好后,需要重启cmd,这样它才会读取到最新的配置。
二胖:可是我看网上的教程说是要配置什么JAVA_HOME,这又是什么呢?
Bill:你看如果后期想要修改jdk目录时意味着需要重新修改path环境变量,而修改path环境变量存在着一定的风险(误删)。对此我们可以自定义一个环境变量保存路径中可能会发生改变的部分这样就避免了修改path环境变量,并为其取名为JAVA_HOME。所以配置就可以改为下图:
二胖:原来是这样,那说明这个"JAVA_HOME"也可以改成其他的名称咯!
Bill:话虽如此,但是这样比较专业并且一目了然嘛!
二胖:我还注意到了一个小细节。这个环境变量为什么要配置在path的头部呢,这是必须的吗?
Bill:你个机灵鬼,这都被你发现了。是这样的,因为有些应用程序中内置了java的一些工具,而WINDOWS系统是从path的头开始查找,一旦查找到就不再查找,所以为了避免使用到了其他应用程序中的java工具,尽量将其配在前端。
二胖:知道啦,Bill,你可真是帮了我大忙了,万分感谢!
Bill:举手之劳嘛,不过Java自学还是很辛苦的,你可不能轻言放弃,有什么问题再联系我哈!
二胖:好的!