Java中设置classpath、path、JAVA_HOME的作用
hinking in Java对classpath作用的解释
Java 解释器的工作程序如下:
首先,它找到环境变量CLASSPATH(将Java 或者具有Java 解释能力的工具——如浏览器——安装到机器中时,通过操作系统进行设定)。CLASSPATH 包含了一个或多个目录,它们作为一种特殊的“根”使用,从这里展开对.class 文件的搜索。从那个根开始,解释器会寻找包名,并将每个点号(句点)替换成一个斜杠,从而生成从CLASSPATH 根开始的一个路径名(所以package foo.bar.baz 会变成foo\bar\baz 或者foo/bar/baz;具体是正斜杠还是反斜杠由操作系统决定)。随后将它们连接到一起,成为CLASSPATH 内的各个条目(入口)。以后搜索.class 文件时,就可从这些地方开始查找与准备创建的类名对应的名字。此外,它也会搜索一些标准目录——这些目录与Java 解释器驻留的地方有关。
为进一步理解这个问题,下面以我自己的域名为例,它是bruceeckel.com。将其反转过来后,com.bruceeckel 就为我的类创建了独一无二的全局名称(com,edu,org,net 等扩展名以前在Java 包中都是大写的,但自Java 1.2 以来,这种情况已发生了变化。现在整个包名都是小写的)。由于决定创建一个名为util 的库,我可以进一步地分割它,所以最后得到的包名如下:package com.bruceeckel.util;
现在,可将这个包名作为下述两个文件的“命名空间”使用:
//: Vector.java
// Creating a package
package com.bruceeckel.util;
public class Vector {
public Vector() {
System.out.println(
"com.bruceeckel.util.Vector");
}
}
//: List.java
// Creating a package
package com.bruceeckel.util;
public class List {
public List() {
System.out.println(
"com.bruceeckel.util.List");
}
}
这两个文件都置于我自己系统的一个子目录中:
C:\DOC\JavaT\com\bruceeckel\util
若通过它往回走,就会发现包名com.bruceeckel.util,但路径的第一部分又是什么呢?这是由CLASSPATH
环境变量决定的。在我的机器上,它是:
CLASSPATH=.;D:\JAVA \LIB;C:\DOC\JavaT
可以看出,CLASSPATH 里能包含大量备用的搜索路径。然而,使用JAR 文件时要注意一个问题:必须将JAR
文件的名字置于类路径里,而不仅仅是它所在的路径。所以对一个名为grape.jar 的JAR 文件来说,我们的
类路径需要包括:
CLASSPATH=.;D:\JAVA \LIB;C:\flavors\grape.jar
个人理解说明:其实从上面可以看出,如果你用记事本来写java程序(在Window下),并用cmd命令窗口中
输入javac,java命令,如果你的代码中用到了其它的jar或者你自己的写的类,但又和你的主程序没在一个包下,这时你就要在classpath中设置你要用到的jar或者自己写的类的路径,让Java在编译器可以找到你要用的东西,如上面例子所示。 在我们用一些工具时,如eclipse中,我们可以把一些Jar包什么的添加进来,然后搜索路径的事工具帮我们做了,所以不用在手动加进去,如下图,eclipse工程中专门有一个文件来记录classpath
..................................................................................................................................................... CLASSPATH是什么?它的作用是什么? ..................................................................................................................................................... 1. PATH环境变量。作用是指定命令搜索路径,在命令行下面执行命令如javac编译java程序时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。我们需要把jdk安装目录下的bin目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如javac/java/javadoc等待,设置好PATH变量后,就可以在任何目录下执行javac/java等工具了。 2. CLASSPATH环境变量。作用是指定类搜索路径,要使用已经编写好的类,前提当然是能够找到它们了,JVM就是通过CLASSPATH来寻找类的.class文件。我们需要把jdk安装目录下的lib子目录中的dt.jar和tools.jar设置到CLASSPATH中,当然,当前目录“.”也必须加入到该变量中。 javac -c 路径 (可以指定class文件存放目录) java -cp 路径 (可以指定要执行的class目录) 3. JAVA_HOME环境变量。它指向jdk的安装目录,Eclipse/NetBeans/Tomcat等软件就是通过搜索JAVA_HOME变量来找到并使用安装好的jdk。
在windows桌面上右击“我的电脑” —> “属性” —> “高级” —> “环境变量”,在“系统变量”里我们可以看到系统的各个环境变量的值。双击某个变量名可以修改变量值,变量值之间用“;”隔开。我们还可以“新建”原先没有的变量。与jdk有关的有3个环境变量;“java_home”,“path”,“classpath”。我的系统中“path”变量已经存在,可以直接添加新值(其它变量值不要动,防止其它程序运行异常),其它两个变量需要新建。
classpath= ".;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar" java_home = "C:\Program Files\Java\jdk1.5.0" path ="%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin " |
DK安装与配置图解
JDK1.7安装图解
一、下载JDK1.7
下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
1.、首先选中红色部分,然后从产品列表中选中对应系统的jdk版本点击下载
图1-1下载信息
二、安装jdk
1.双击“jdk-7u1-windows-i586.exe”可以直接运行程序,如图所示。
图1-2 运行起始界面
2、选中要安装得部分和要安装的路径。建议使用默认配置。“开发工具”是必须安装的,它是JDK的核心,“源代码”是JDK类库包的源代码,建议安装(很多时候都能用到源代码)。“公共JRE”可以选择不按转,因为JDK中包括JRE。这里我选择默认的配置。
图1-3 选择安装路径
点击下一步,安装jdk
图1-4 安装进度条
3、当JDK安装完成是会提示是否安装JRE
图1-5 JRE安装提示
4、点击“下一步”安装JRE
图1-6 JRE安装进度条
5、静等进度条结束,结束之后会提示产品注册,直接点击“完成”就行了。
图1-7 安装完成
三、配置JDK环境变量
1、右击“我的电脑”选择“属性”,在选择“高级”然后选中“环境变量”。
图1-8 环境变量的选择
2、点击“环境变量”。
然后在“系统环境变量”中,点击“新建”
3、 “新建”,新建一个名为“JAVA_HOME”的系统环境变量。其变量的值为JDK安装根目录,我的JDK安装到了C:\Program Files\Java\jdk1.7.0_01。
图1-10 添加JAVA_HOME环境变量
4、“新建”(或编辑)一个名为“path”的环境变量,如果Path变量已经存在,则在变量值的最后面追加“;%JAVA_HOME%\bin;”。
图1-11 编辑Path环境变量
5、“新建”一个名为“ClassPath”的环境变量,其值为“%JAVA_HOME%\jre\lib\rt.jar;.;”
图1-12 新建ClassPath环境变量
6、在控制台中输入“java –version”如果出现如图所示的java version信息,则表示JDK安装成功(提示的版本信息可能不对,我安装了多个JDK)。
图1-13 JDK安装提示