安装jdk后需要设置一些环境变量,为什么要设置这些环境变量呢,后来经过一些实践发现其原因所在

环境变量可以看成是计算机的全局变量,windows下面的环境变量有系统级变量和用户级变量,系统级变量是指所有用户都可使用,不管你用哪个用户登录,这些变量都可以访问,用户级变量则是针对特定用户设置的变量,其他用户不可访问。 unix系统下面也是类似的道理,各个用户可自行在.profile中设置自己特有的变量,管理员也可设置全局变量,供所用用户使用。

运行里面输入notepad回车后看到记事本出来了,其实当我们输入notepad时候,系统会去系统环境变量里找这个程序的可执行文件路径。那我们可以打开系统环境变量的设置地方,大家会看到系统变量windir的值为%SystemRoot%(其实也就是c:/WINDOWS若系统装在c盘的话),我们再打开c:/WINDOWS,怎么样,是不是找到一个叫notepad.exe的程序!


我想大家也就应该清楚了,设置系统变量的目的:为了使系统可以找到程序的运行路径!

1、查看当前可用的所有环境变量(=系统变量+用户变量)
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><span style="color:blue">set<br></span><br><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr> 查看某个环境变量,如PATH
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>set PATH</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr></wbr></wbr> 添加环境变量,如xxx=aa
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>set xxx=aa</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr></wbr></wbr> 将环境变量(如xxx)的值置为空
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>set xxx=</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr></wbr></wbr> 在某个环境变量(如PATH)后添加新的值(如d:\xxx)
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>set PATH=<strong>%</strong>PATH<strong>%;</strong>d:\xxx</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>



[注]:以命令行方式对环境变量的操作只对当前窗口的应用有效!

2、Windows下JAVA用到的环境变量主要有3个:JAVA_HOME、CLASSPATH、PATH。


JAVA_HOME环境变量。它指向jdk的安装目录,Eclipse/NetBeans/

Tomcat等软件就是通过搜索JAVA_HOME变量来找到并使用安装好的jdk。


CLASSPATH环境变量。作用是指定类搜索路径,要使用已经编写好的类,前提当然是能够找到它们了,JVM就是通过CLASSPTH来寻找类的。我们需要把jdk安装目录下的lib子目录中的dt.jar和tools.jar设置到CLASSPATH中,当然,当前目录“.”也必须加入到该变量中。(所以,在需要import导入类时,就会有关于classpath的设置,能够在里面的路径下找到需import导入的类名)

CLASSPATH=.\;;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

首先要注意的是最前面的".\;",——句点反斜杠分号。这个是告诉JDK,搜索CLASS时先查找当前目录的CLASS文件。



PATH环境变量。作用是指定命令搜索路径(javac/java/javadoc等),在shell下面执行命令时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。我们需要把 jdk安装目录下的bin目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如javac/java/javadoc等待,设置好 PATH变量后,就可以在任何目录下执行javac/java等工具了。


编译会出现以下情况,看你是否真得都理解环境变量的设置,并能解决它。

[T1]error:java不是一个可运行的程序?<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>由于没有设置环境变量path
[T2]error:不能打开某个目录?<wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr>可能是忽视了path环境变量中的目录的设置顺序。
[T3]Exception onthread “main”java.lang.DoClassDefFoundError:Test?没有设置classpath的路径。