Java classpath 和 path 的区别
Path:
用来指定java虚拟机(JVM) 所在在目录,目的是告诉系统去什么路径下找到我们最常用的、用来编译java源程序的javac.exe 和 用来执行 *.class 文件的 java.exe 这两个命令。
例如:我的jdk安装目录为 D:/jdk1.5.0_08(确切说,我的这个JDK不是安装版本的,而是直接解压到 d:/ 下的 ,此时我的 path 就要这样设:path=D:/jdk1.5.0_08;D:/jdk1.5.0_08/bin; 设置好以后,就可以在命令行中输入 javac , 与 java 命令了,如果这时能打印出命令的 help 文档就说明 path 设置正确了。 当然也可以执行该目录下的rmic命令,去生成对应的stub和skeleton。
Classpath:
用来指定我们自己所写的或要用到的类文件 (.jar文件) 所在的目录。
这里举例说明:比如我的classpath一开始没有设定,而我的java类文件所在的目录为d:/javalesson/lesson1 这个文件夹,此时把我的命令行窗口所在的目录设置为 d:/javalesson/lesson1(也就是我的类文件所存放的目录),这时如果运行某个 .class 文件是一定能找到的。如果这时我设置 classpath 这个目录,比如我设置为classpath=c:/abc这个目录,这时我的命令行窗口所在的目录没修改仍然为: d:/javalesson/lesson1 (也就是我的类文件所存放的目录没有改变),再运行 java 时就会发生找不到某某类这样的错误,这是因为你只要设置了 classpath 这个环境变量,系统就不会再在当前目录下查询某个类了,所以会发生某某类找不到这样的错误;如果你既要让系统在 classpath 所指定的目录中去找某个类,又要让系统在当前目录下查询某个类,这时你只要让你的 classpath 中多一个 “.” 就可以了,例如:classpath=c:/abc;. 这时你的目录即使在d:/javalesson/lesson1 ,也会找到类文件的。
下面介绍常见系统中java环境变量的设置方法:
(1)、如果是Win95/98,在/autoexec.bat的最后面添加如下3行语句:
JAVA_HOME=c:/j2sdk1.4.1
PATH=%JAVA_HOME%/bin;%PATH%
CLASSPATH=.;%JAVA_HOME%/lib
注意:
1)、CLASSPATH中第一个".",这个代表当前目录,很多人HelloWorld没有运行起来大多是这个原因。
2)、写批处理文件时的注意事项:
<1>“=”号两旁不能有空格,否则会出现很多莫名奇妙的错误
<2>可以用%AAA%来取一个变量 AAA的值
<3>注释是##,但是后面要直接紧跟字符
<4>在每个命令中都可以加上很多参数,当然要明确这些参数的使用,可以用command --help 来查看
(2)、如果是Win2000或者XP,使用鼠标右击"我的电脑"->属性->高级->环境变量
系统变量->新建->变量名:JAVA_HOME 变量值:c:/j2sdk1.4.1
系统变量->新建->变量名:CLASSPATH 变量值:.;%JAVA_HOME%/lib
系统变量->编辑->变量名:Path 在变量值的最前面加上:%JAVA_HOME%/bin;
注意CLASSPATH前面的那个"."和上面的意义是一样的。
(3)、如果是Linux用户
在你的环境中,通常我加在.bashrc文件中,你可以加在你的Profile文件中。
假设/usr/local/jdk 为你安装jdk的目录。
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=.:$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin