好像很是奇怪,学了半年多的Java,到今天还写这么一篇关于安装Java的博客。因为最近重装系统,从头开始配置Java,所以发现了一些问题和收获。。
开始学习Java的时候,遇到的第一个拦路虎就是Java的环境变量配置,因为Java的一次编写,到处运行的特性,它需要在虚拟机上运行,为了在任意文件处可以使用Java,就有了环境变量配置的问题。但我当时安装的时候一切顺畅,并没有遇到麻烦,但后来总是在帮小伙伴安装的时候出现差错。当我重装完系统时安装java,竟也遇到问题。查阅博客得以解决以后,决定自己写一篇指南纪念(祭奠)一下。
JAVA下载
首先是下载Java的JDK。JDK(Java Development Kit),是编写Java程序的程序员使用的软件,里边有各种程序开发需要的库。官网下载传送门
下载后安装。一般来说,JDK安装时会附带安装JRE。JRE(Java Runtime Environment),是运行Java程序所需的软件(环境),包含虚拟机但不含编译器。如果安装缺失JRE,也可以通过官网下载。JRE传送门。
安装过程的话,看不懂的一路Next也是没有问题的啦。
环境变量
安装完成后,就开始惊心动魄的环境变量配置了。
其实也没有什么,只要一步一步照做,是不会有问题的啦。
首先右键“此电脑”,打开属性,选择进入左侧菜单栏里的“高级系统设置”,打开环境变量。
需要在系统变量中设置三项个变量,分别为JAVA_HOME,PATH,CLASSPATH。如果有的变量名已存在,则点击编辑;如果不存在,则点击新建。
变量参数如下:1
2
3JAVA_HOME : JDK安装路径
CLASSPATH : .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; //注意最前边的.
PATH : %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
这是许多教程都会给到的方法。然而此时按照一般的检验方式,即在控制台输入java,javac,java -version,但输入javac会报错。这也是我后来帮小伙伴安装常常出现的问题。
Google半天终于找到缘由。在命令行里运行的java.exe来自JRE,它会找到系统上JRE的具体路径去运行Java程序。而javac.exe不是JRE的一部分,而是JDK的。JDK的安装程序不会自动将自己的bin目录配置到PATH环境变量上,所以在命令行里也看不到它。要解决这个问题需要把JDK的bin目录配置到PATH环境变量里,或者在命令行用JDK的全路径去访问javac.exe。而在 Windows10 中,因为系统的限制,path 变量只可以使用 JDK 的绝对路径。%JAVA_HOME% 会无法识别,导致配置失败。
综上,path的变量值应为1
PATH : JDK/bin绝对路径
以我自己的配置举例,就是1
2
3JAVA_HOME : D:\Java\jdk-10.0.2\
CLASSPATH : .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; //注意最前边的.
PATH : D:\Java\jdk-10.0.2\bin
检验成果
这时在控制台输入java,javac,java -version即可看到返回。
PS:
- JAVA_HOME:该环境变量的值就是 Java 所在的目录,一些 Java 版的软件和一些 Java 的工具需要用到该变量,设置 PATH 和 CLASSPATH 的时候,也可以使用该变量以方便设置。
- PATH:指定一个路径列表,用于搜索可执行文件的。执行一个可执行文件时,如果该文件不能在当前路径下找到,则依次寻找 PATH 中的每一个路径,直至找到。或者找完 PATH 中的路径也不能找到,则报错。Java 的编译命令 (javac),执行命令 (java) 和一些工具命令 (javadoc, jdb 等) 都在其安装路径下的 bin 目录中。因此我们应该将该路径添加到 PATH 变量中。
- CLASSPATH:也指定一个路径列表,是用于搜索 Java 编译或者运行时需要用到的类。在 CLASSPATH 列表中除了可以包含路径外,还可以包含 .jar 文件。Java 查找类时会把这个 .jar 文件当作一个目录来进行查找。通常,我们需要把 JDK 安装路径下的 jre/lib/rt.jar (Linux: jre/lib/rt.jar) 包含在 CLASSPATH 中。
PATH 和 CLASSPATH 都指定路径列表,列表中的各项 (即各个路径) 之间使用分隔符分隔。在 Windows 下,分隔符是分号 (;),而在 Linux 下,分隔符是冒号 (:)。