前言

对于每个初学者来言,上级的第一步都是先下载jdk,然后配置本机环境,那么配置本机环境的目的是什么呢?他的作用是干嘛的,
第一步,我们先简单回顾配置java环境变量的步骤

操作步骤

1. 打开 环境变量窗口

右键 This PC(此电脑) -> Properties(属性) -> Advanced system settings(高级系统设置) -> Environment Variables(环境变量)…
深挖JAVA配置环境变量的含义 - 图1

2. 在系统变量下新建JAVA_HOME 变量点击 New(新建)… 按钮

输入:
变量名:JAVA_HOME 变量值:电脑上JDK安装的绝对路径
输入完毕后点击 OK。

深挖JAVA配置环境变量的含义 - 图2
JDK 路径下必须能够看到如下的文件。
深挖JAVA配置环境变量的含义 - 图3

3. 新建/修改 CLASSPATH 变量

如果存在 CLASSPATH 变量,选中点击 Edit(编辑)
如果没有,点击 New(新建)… 新建。
输入/在已有的变量值后面添加:
变量名:CLASSPATH 变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
点击 OK 保存。

深挖JAVA配置环境变量的含义 - 图4

4. 修改Path 变量

由于 win10 的不同,当选中 Path 变量的时候,系统会很方便的把所有不同路径都分开了,不会像 win7 或者 win8 那样连在一起。
新建两条路径:
%JAVA_HOME%\bin %JAVA_HOME%\jre\bin
深挖JAVA配置环境变量的含义 - 图5

4. 检查 打开 cmd,输入 java,出现一连串的指令提示,说明配置成功了:


深挖JAVA配置环境变量的含义 - 图6

解析

  1. JAVA_HOME没啥好说的,就是java路径,指向jdk的安装目录,,Eclipse/NetBeans/Tomcat等软件就是通过搜索JAVA_HOME变量来找到并使用安装好的jdk。
  2. CLASSPATH: 作用是指定类搜索路径,要使用已经编写好的类,前提当然是能够找到它们了,JVM就是通过CLASSPTH来寻找类的。

需要把jdk安装目录下的lib子目录中的dt.jar和tools.jar设置到CLASSPATH中,当然,当前目录“.”也必须加入到该变量中。
新版的软件,classpath没有什么用了,因为在安装的时候已经选了JDK而且可以添加

  1. PATH: 作用是指定命令搜索路径,在i命令行下面执行命令如javac编译java程序时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。

当 Java 解释器必须要加载一个 .class 文件时,它能定位到 .class 文件所在的位置。首先,它找出环境变量 CLASSPATH(通过操作系统设置,有时也能通过 Java 的安装程序或基于 Java 的工具设置)。CLASSPATH 包含一个或多个目录,用作查找 .class 文件的根目录。
从根目录开始,Java 解释器获取包名并将每个句点替换成反斜杠,生成一个基于根目录的路径名(包名 foo.bar.baz 变成 foo\bar\baz 或 foo/bar/baz 或其它,取决于你的操作系统)。然后这个路径与 CLASSPATH 的不同项连接,解释器就在这些目录中查找与你所创建的类名称相关的 .class 文件(解释器还会查找某些涉及 Java 解释器所在位置的标准目录)。

  1. package com.mindviewinc.simple;
  2. public class Vector {
  3. public Vector() {
  4. System.out.println("com.mindviewinc.simple.Vector");
  5. }
  6. }
  7. //-------------------------------------
  8. package com.mindviewinc.simple;
  9. public class List {
  10. System.out.println("com.mindview.simple.List");
  11. }

这两个文件都位于我机器上的子目录中,如下:

  1. C:\DOC\Java\com\mindviewinc\simple

如果你回头看这个路径,会看到包名 com.mindviewinc.simple,但是路径的第一部分呢?CLASSPATH 环境变量会处理它。我机器上的环境变量部分如下:

CLASSPATH=.;D:\JAVA\LIB;C:\DOC\Java

CLASSPATH 可以包含多个不同的搜索路径。

但是在使用 JAR 文件时,有点不一样。你必须在类路径写清楚 JAR 文件的实际名称,不能仅仅是 JAR 文件所在的目录。因此,对于一个名为 grape.jar 的 JAR 文件,类路径应包括:

CLASSPATH=.;D\JAVA\LIB;C:\flavors\grape.jar

当编译器遇到导入 simple 库的 import 语句时,它首先会在 CLASSPATH 指定的目录中查找子目录 com/mindviewinc/simple,然后从已编译的文件中找出名称相符者(对 Vector 而言是 Vector.class,对 List 而言是 List.class)。注意,这两个类和其中要访问的方法都必须是 public 修饰的。

注意

java 文件产生的类文件所在的目录或者父目录(多级父目录)必须在CLASSPATH的几个目录之下。不要错误的认为Java总是会将当前目录视作查找行为的起点之一。如果你的CLASSPATH中没有 . ,Java就不要会查找单独当前目录