Windows 下使用 set 命令设置环境变量,为了使每一次启动计算机都设置这些环境变量,应该在系统盘根目录下的 autoexec.bat 文件中进行设置,如:

  set JAVA_HOME=C:jdk

  set PATH=%JAVA_HOME%in;C:Windows;C:WindowsCommand

  set CLASSPATH=%JAVA_HOME%jrelib t.jar;.

  有些版本的 Windows 不能用 %变量名% 来替换环境变量的内容,那么只好直接写 C:jdk 而不是 %JAVA_HOME% 了。另外,C:Windows 和 C:WindowsCommand 是 Windows 会自动加入路径的,所以可以从设置中去掉。如果在 autoexec.bat 中已经设置了 PATH,那只需要将 %JAVA_HOME%in 加到原来设置 PATH 的那条语句中行了。

  CLASSPATH 也可以根据需要设置或者加入其它的路径,比如你想把自己写的一些类放在 C:java 中,可以把 C:java 也添加到 CLASSPATH 中去,set CLASSPATH=%JAVA_HOME%jrelib t.jar;C:java;.。

  注意,在 CLASSPATH 中包含了一个“当前目录 (.)”。包含了该目录后,可以到任意目录下去执行需要用到该目录下某个类的 Java 程序,即使该路径并未包含在 CLASSPATH 中也可以。原因很简单:虽然没有明确的把该路径包含在 CLASSPATH 中,但 CLASSPATH 中的 “.” 在此时代表了该路径,如:

  假设在 C:java 目录下有可运行的类 HelloJava.class,那么

C:> set CLASSPATH=C:jdkjrelib t.jar;. // 设置 CLASSPATH 环境变量,注意后有一个 “.”
C:> cd java // 转到 C:java 目录
C:java> java HelloJava // 运行 HelloJava
Hello, Java. // 运行结果
C:java> _
****

    在 Linux 下设置

  Linux 下使用“变量名=变量值”设置变量,并使用 export 命令将其导出为环境变量。为了使每一次登录都自动设置好这些变量,你需要在 ~/.bash_profile 里或者 ~./bashrc 里进行设置,如

export JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/jre/lib/rt.jar:.

  设置 PATH 时用的 $JAVA_HOME 是指替换变量 JAVA_HOME 的值到 $JAVA_HOME 所在位置。如上句实际是 export PATH=/usr/local/jdk/bin:$PATH。这句中 $PATH 也是同样的作用,不过这里的 PATH 是指以前设置的 PATH 变量的值,而非本次设置 PATH 变量的值。

  注意,在 CLASSPATH 中包含了一个“当前目录 (.)”。包含了该目录后,可以到任意目录下去执行需要用到该目录下某个类的 Java 程序,即使该路径并未包含在 CLASSPATH 中也可以。原因很简单:虽然没有明确的把该路径包含在 CLASSPATH 中,但 CLASSPATH 中的 “.” 在此时代表了该路径,例如

  假设在 /home/fancy/java 目录下有可运行的类 HelloJava.class,那么

  [fancy@matrix fancy]$ export CLASSPATH=/usr/local/jdk/jre/lib/rt.jar:. // 设置 CLASSPATH,注意后的“.”

  [fancy@matrix fancy]$ cd ~/java // 转到 /home/fancy/java

  [fancy@matrix java]$ pwd // 显示当前目录

  /home/fancy/java // 当前目录是 /home/fancy/java

  [fancy@matrix java]$ java HelloJava // 运行 HelloJava

  Hello, Java // 运行结果

  [fancy@matrix java]$ _