java的jdk ,mysql环境变量配置,以及浅谈window操作系统的环境环境配置原理
引论
在学习Java , python ,数据库mysql的时候,甚至更多开发工具的时候,我们一般都会看到很多入门新手教程都会在安装好环境后第一件事就是叫我们配置环境变量,比如JAVA_HOME之类的, 那么我们是不是非得配置这些环境变量变量呢?
答案是 非必要,只是配置了以后能更方便我们使用命令行, 或者在以后的学习中可能会有一些东西需要做一些配置而已,仅此而已
怎么配置
在window是操作系统下, 我们可以通过 此电脑-> 属性 -> 高级系统设置 -> 环境变量 -> 找到系统变量
具体的变量配置
这里仅仅只拿最常见的jdk 和mysql来举例说明, 一般我们都是这样配置:
新建变量和命名
首先, 新建 一个变量, 名字起名一般为 某某_HOME (例如JAVA_HOME,), 当然也可以起别的,例如MySQL , 这个名字并不是定死的, 你也可以随意起名(并非强制),但是,大家约定好就是这样,你不遵循在以后过程中用到人家的东西就有可能出麻烦,下面例举一些常见的:
- jdk一般变量名为: JAVA_HOME
- mysql一般变量名为 MySQL
- maven一般变量名为 MAVEN_HOME
设置变量的值
变量的值一般就是安装目录的路径, 例如 JAVA_HOME 就是jdk的安装路径,例如根据上图可知我的安装路径就是D:\Environment\jdk1.8
,进入到该路径应该是如下图这样,包含了一些 bin文件夹之类的,如果你没看到那么那个路径不是jdk的安装路径
随后不要忘记点击确定,即可创建成功.
添加到Path变量
经过一番折磨,其实还没完, 由于系统只识别Path变量,所以我还们还需要在Path变量中进行配置,
编辑Path,新建,%JAVA_HOME%bin
等等,最后点击确定即可
至此,所有的环境变量配置工作已经作文, 可在dos窗口下输入相关命令检测是否成功
原理
之前有说过,其实上面的配置工作都是非必须的, 配置了之后我们可以更方便的使用命令行,那么具体是怎么个方便法.
(1)简化切换路径等相关操作
还是以jdk为例, 我们打开到jdk的安装目录的bin文件夹下
,那么会有我们需要的答案
会发现里面有很多可执行文件(在window操作系统下,可执行文件后缀名是.exe,如果你没能看到后缀名请查看是否设置了显示后缀名选项) ,文件有很多,我们只需要找我们熟悉的,发现 有java.exe , javac.exe , javap.exe,用过Java命令编译运行过Java文件的应该觉得很熟悉了, 这就是之前使用的编译命令 javac 文件名.java
, 运行命令 javac 文件名
回忆配置的过程
我们在Path系统变量中, 配置了 %JAVA_HOME%bin,而JAVA_HOMR的值刚好就是jdk的安装路径,这么巧不会是巧合吧,当然不会
普及一个知识点, 其实Path变量中的% %其实是相对引用的意思,也就是说%JAVA_HOME%的值就是D:\Environment\jdk1.8
至此,真相已经显而易见, 即我们在Path中配置的%JAVA_HOME%\bin , 其实最终还是要转化为D:\Environment\jdk1.8\bin
window命令含义
实际上我们运行的Java命令就相当于运行了D:\Environment\jdk1.8\bin下的java.exe
当然,你如果直接双击java.exe可能会出现黑框一闪而过的样子,这很正常,程序执行完毕就退出了嘛
命令(文件)必须在其对应的路径下才可执行
实际上,即使我们不配置环境变量,依然可以运行java
命令,我们只需要将dos系统切换到D:\Environment\jdk1.8\bin
目录下即可
切换目录,
- 换路径可用
cd
命令进行切换 - 也可以在指定的目录下打开
cmd(dos窗口)
(比较方便,且适合新手)
在指定目录下打开dos, 首先进入到你想切换的dos窗口的文件路径(我这里选了jdk的bin目录),
运行命令
由于我已经配置好, 就不再演示运行命令了,实际上,假如你没配置变量,依然可以在切换好路径的dos窗口下运行java
命令
而配置好变量以后, 你可以在任何路径下运行java
命令
总结(个人想法)
通俗来说, 系统变量的Path变量值,是dos窗口下可以被所有路径都可以识别到的,当你执行一个命令,首先会在当前路径下,寻找,若没有则会从Path变量值中去找, 我们为了避免频繁切换目录,即开即用,所以将常用的路径配置在系统环境变量Path里
也许会有人说,那JAVA_HOME是不是有点多余, 我直接在Path里配置jdk的不就行了嘛,就目前情况而言,没有一丝毛病,但是,以后有一些工具(如低版本的tomcat),会用到这个变量,这是大家约定俗成的,最好遵守
最后的最后,综上所述,都是个人的一些主观猜测(并未认真查阅资料参考),或者与实际上的原理有一定出入,但实际效果并未有任何差异