[转载] 详解JAVAHOME,Path与ClassPath的含义

1、首先搞明白内部命令与外部命令的区别
在学习编程过程中经常遇到这样的概念:
内部命令
启动后是常住内存的。
用dos的时候内存都比较小,非常贵,而内部命令启动后是常住内存的。
外部命令
内部直接打就可以执行,外部得进到命令所在的目录或者设置环境变量才可以执行. 
在java开发中设置的环境变量就解决这个问题的

2、环境变量的含义(注意:java环境变量设置不分大小写)

1、java_home(不分大小写),其实这是保存你的jdk安装的路径, (这主要是在路径设置时,使其更为直观和方便,使用%%可以实现对其的逆解析
例如:D:\Java\jdk1.5.0_05

2、Path:外部命令搜索路径(它与ClassPath不同,主要提供的是系统命令执行工具的路径,即用于执行命令的.EXE程序,如java、javac,一般不轻易改变
例如:D:\Java\jdk1.5.0_05\bin
例如:%JAVA_HOME%\BIN; 当你改变javahome时却不必影响到path你设java_home时不用经常改变path,java_home在path里只是一个相对路径
当你重装jdk的时候只需要修改一下 java_home 不必修改path

3、CLASSPATH:类资源位置搜索路径(这是命令执行工具要执行的类文件的地址,java会首先在当前目录Lib下寻找(一般开始就设定了的),如果未找到,则会到CLASSPATH指定的目录下进行寻找。由于是要执行的。class文件,所以其经常要变化,在使用Eclipse等IDE时,由系统自动的根据其位置进行配置。在非IDE方式下,则需要进行手动的配置。

CLASSPATH: .;D:\jdk1.5.0\lib\tools.jar;D:\jdk1.5.0\jre\lib\rt.jar;
注意细节你的系统可能已经有其他的软件设置了path:

 程序代码
.;D:\jdk1.5.0\lib\tools.jar;D:\jdk1.5.0\jre\lib\rt.jar;
其中的PATH和CLASSPATH是java为所有的应用程序提供的,PATH用于指出命令执行工具的位置(搜寻路径),如java、javac,而ClassPath用于指定需要被命令工具执行的资源文件的位置。
 
当我们在控制台下敲入:

[转载] 详解JAVAHOME,Path与ClassPath的含义_第1张图片

如果未配置path路径,指明java这个命令工具的所在地,则其将无法被找到。

此处可以采用

1、在“我的电脑”属性中配置系统环境变量

[转载] 详解JAVAHOME,Path与ClassPath的含义_第2张图片

 

2、在控制台中临时配置两种方式(每次都要重新敲入)

[转载] 详解JAVAHOME,Path与ClassPath的含义_第3张图片

一般来说,PATH变量的设置一般不会轻易变化,为了节省精力,一边采用在系统环境变量中配置,以避免重复敲入。

而CLASSPATH变化较大(资源文件的存放),一般会设置一个默认的系统变量,但是在执行命令工具之前,一般要用第2种方式对其进行重新的配置。

 

 


3、彻底理解 Javahome 与 Path 与ClassPath的含义


1、PATH,这个是给WINDOWS操作系统用的, 告诉命令行里,执行的命令行工具在那里,比如java,javac这都是命令行工具,你在运行里随便敲一个命令,操作系统怎么就知道你这个命令对应的程序在什么地方,就是通过PATH知道的,你编写JAVA程序的时候,需要编译你的代码,执行编译后的代码,用JAVA和JAVAC这2个工具,那么就必须告诉操作系统,这2个工具放在什么地方。
{WINDOWS提供了一个PATH环境变量,他的作用就是现在这个变量的值路径中去找,如果找到了要运行的EXE就运行,否则失败。如果我们把JAVA里的bin目录这个路径赋给path那么下次我在运行java这个命令的时候,即便是直接输入DOS也能够在path变量中找到JAVA的bin目录下的java指令了。 }


2、JAVA_HOME,是告诉操作系统,JAVAC和JAVA的具体位置的,因为你安装JAVA的路径可能比较长,不方便在PATH里面写,所以就等于是声明一个简写。

例如:你的jdk安装路径为
D:\Java\jdk1.5.0_05
那么
java_home = D:\Java\jdk1.5.0_05;
path  = :%java_home%\bin;

3、CLASSPATH,是给JAVAC和JAVA用的,告诉他们,你写的JAVA类,是放在什么地方的。
——“假设我们要运行一个JAVA程序(hello.java)就要先把它的class文件移动到JAVA里的bin目录下”,为什么要这样做呢?因为我们在用到java hello.class这条指令的时候,DOS不知道hello.class这个文件在哪里,他就先到当前目录中去找,如果找到就运行,否则失败。当然,如果说hello.java在D盘根目录下,你也可以用java D:\hello.class这条指令来运行,但是每次这样做也确实够麻烦。WINDOWS就提供了这样一个环境变量——classpath,如果没有就应该新建一个。我们把D:\这个路径赋值给classpath,那么下次在运行java hello.java的时候就先在当前目录中到,如果找到就运行,如果找不到就在classpath的值路径下去找,找到就运行,找不到就失败。 

你可能感兴趣的:(java)