一般教程中有三个环境变量,path,java_home和classpath。
但是在java核心中,看到只是设置一个环境变量即可,就是path。
1.环境变量path是可执行文件路径,就是操作系统查找可执行文件需要遍历的目录。因为java程序需要编译用到javac命令,但是这个命令不知道在哪里,操作系统就会去环境变量指定的路径去查找。否则找不到就识别不了执行不了这个目录。同时环境变量也是一种固定变量,就等于一个全局变量一样,定义一次就好,不用写在代码里。比如在命令行执行javac -version ,javac前面其实省略了一个路径:jdk的安装路径/bin,比如我安装的jdk路径是,D:\lib\Java\jdk1.8.0_211\bin,上面命令行其实执行的是:D:\lib\Java\jdk1.8.0_211\bin\javac -version
所以环境变量其实也是一个变量,记录了某些路径,当你执行某些可执行文件的时候,操作系统会去这些目录找有没有这个文件,有就将前缀给你补充完整,执行;没有就拒绝执行。
所以配置了path环境变量就可以在任意目录下使用和执行javac和java命令。
在D:\lib\Java\jdk1.8.0_211\bin目录下,可以发现有javac.exe和java.exe文件(程序,可执行文件)。-version是执行这个文件的参数。
就算暗转了myeclipse也要配置环境变量path,因为虽然可视化了,后台还是会调用,javac编译。
path配置的是,jdk安装目录下的bin路径。
2.javahome文件其实也不是必要的,只是一个中间变量,,他定义jdk的安装位置,这样在配置path路径的时候就可以这么写,%javahome%/bin, 所以也可以不用,直接用绝对路径也可以。
用的理由是:在和第三方软件合作的时候或者被引用的时候,可能会默认使用javahome路径,如果路径发生变动,一个个位置改可能会改漏,如果配置了环境变量javahome,那就只改javahome一个地方就可以了。
3 classpath也可以不用,jdk1.5之前需要,之后的就不需要了,除非你先往下兼容。他的作用是,标识类库的位置(java公共),让解释器(java)知道去哪里寻找标准类库,比如java.lang包中的类。这些类是别人写好的,我们尽管用。这样在写java文件的就不用import对应的类,系统默认import了,就可以直接使用相应的方法,不在classpath里面的类,需要自己import引用之后使用。
一般包含两个包,tools.jar和dt.jar