一些名词解析

  • JDK: java development kit java开发工具包 = JRE+一些可执行程序 java的编译器javac和解释器java都位于jdk中的bin目录下
  • JRE: java runtime environment java运行时环境 = JVM + lib类库信息[java写好提供给我们使用的一些组件,包括rt.jar、tool.jar等]
  • JVM: java virtual machine java虚拟机 专门用来执行字节码文件(.class文件)的
  • 注意:他们之间的关系时包含关系。jdk 包含 jre ,jre包含 jvm。

配置环境变量

 解决寻址bin目录的问题

在环境变量中配置path

  • 环境变量的配置: 在DOS命令行中去执行某个命令的寻址过程
  • 当前路径下找
  • 环境变量里面找[path]
  • 用户变量
  • 系统变量
  • 配置环境变量:
  • 右击计算机->属性->高级系统设置->环境变量->系统变量->path


java 环境变量 用户 java中的环境变量_后端


千万注意:重新配置了环境变量一定要重启DOS系统,不然配置无法生效。

 解决切换版本问题

有很多时候可能会频繁的切换版本,但是path中的路径太多,可能会存在漏删或者多删除,导致整个path出现问题,所以我们多配置一项JAVA_HOME。简化修改版本的代价。


java 环境变量 用户 java中的环境变量_环境变量_02

java 环境变量 用户 java中的环境变量_后端_03

  


后期切换版本。只需要动JAVA_HOME即可。

 解决寻找文件的问题

CLASSPATH: 这个玩意在JDK1.5之后不需要配置。JDK1.5之前配置的目的是为了能够方便使用java命令来解释执行对应的class类信息。但是JDK1.5之后,java命令可以独自去解释执行类信息,所以无需配置。

java 环境变量 用户 java中的环境变量_环境变量_04

classpath要么不配,要配置一定记得配置当前路径.

总结一下

就是说为什么要配置环境变量呢?根本原因就是想要在程序的任意的一个目录都可以使用javacjava这两个工具(也就是编译器和解释器)。

当我们输入一个命令的时候,系统首先在当前目录下查看能否使用这个目录,如果当前目录下没有对应的工具,系统就会从环境变量的path中寻找路径。

所以如果不配置环境变量的话只能在javajdk\bin那个文件夹目录下面使用javacjava

举个例子:

我们编译一个java文件


C:\Program Files\Java\jdk1.8.0_131\bin>javac hello.java


我们解释一个class


C:\Program Files\Java\jdk1.8.0_131\bin>java hello


我们可以在jdk\bin目录下很容易实现

而且因为我们刚刚配置了环境变量,所以我们可以在任意一个目录下使用javacjava


C:\Users\mac\Desktop>javac hello.javaC:\Users\mac\Desktop>java hello


如果要编译不在本目录下的java文件,只需要在java文件之前添加上路径


C:\Users\mac\Desktop>javac 路径\hello.java


如果要解释不在本目录下的类,需要使用classpath参数


C:\Users\mac\Desktop>java -classpath 类路径\主类


但是现在有一个问题,在java1.5版本之前,java解释器在解释java类的时候需要使用一些工具来帮助他解释,比如rt.jartool.jar,这两个工具一般在jdk\jre\lib中,所以说现在javac是可以正常在任意目录下使用的,但是java因为缺少了相关工具无法进行正常解释。

那要如何解决这个问题呢,我们可以将rt.jartool.jar这两个工具的路径添加到环境变量中,当java在解释主类的时候,如果找不到这两个工具,就会到classpath中去寻找,这样就可以在任意目录中使用java去解释任意目录下的主类了。

java1.5版本之后,rt.jartool.jar都被内嵌到java命令之中了,所以就不需要配置classpath了。

要配置也可以,但是一定得注意在classpath中添加./,不然如果没有添加./,而你又配置了classpath,那么当你在解释类文件的时候,系统就会默认使用你配置的classpath路径,也就是说系统默认以为你要解释的类是在classpath的目录之下的。这样的话有可能就会找不到类文件。

补充一点,在配置环境变量的时候,我们一般将jdk的路径存放在JAVA_HOME之中,然后使用%JAVA_HOME%\bin来表示编译器和解释器的路径,是因为如果我们要切换java的版本,我们就必须改变环境变量中jdk的路径,而path中的参数又有很多,为了降低修改的错误成本,我们只需要修改JAVA_HOME的路径就可以切换版本了。