Java环境配置与设置JAVA_HOME,CLASSPATH,PATH的目的
首先安装jdk于C,安装后目录为:C:\\Program Files\\Java\\jdk1.6.0,然后右键我的电脑,选择高级--->环境变量,配置如下:
JAVA_HOME=C:\\Program Files\\Java\\jdk1.6.0; path=%JAVA_HOME%\\bin;
classpath=.;%JAVA_HOME%\\lib\\dt.jar;%JAVA_HOME%\\lib\ool.jar; 点击确定完成。
HelloWorld.java经典测试代码: public class HelloWorld{
public static void main(String args[]){
System.out.println(\"hello world !\") } }
命令行输入:javac HelloWorld.java 生成HelloWorld.class 命令行输入:java HelloWorld 屏幕上打印\"hello world !\"
很多人在初学Java的时候经常会被书中介绍的一堆环境变量的设置搞得头昏脑胀,很多书中都会在初装JDK的时候让大家设置JAVA_HOME环境变量,在开发程序的时候设置CLASSPATH环境变量,而很多人并不理解这两个环境变量的作用,我们来分别进行详细的阐述。
首先是JAVA_HOME环境变量,我们先来掌握这个环境变量的设置内容,JAVA_HOME这个环境变量的设置内容是JDK的安装目录,比如说您的JDK安装在d:\\jdk1.6.0这个目录下,请您查看一下这个目录下是不是有一个子目录bin,bin目录中是不是有java.exe这个文件,如果是,那么您的JAVA_HOME环境变量的内容应该为d:\\jdk1.6.0。那么我们设置这个环境变量的作用是什么呢?就
单独的java开发而言,这个环境变量并没有任何作用,这就是很多根据书上的描述设置好之后,把一本书学完也没有用到这个变量,所以很是不理解。
其实JAVA_HOME变量最好还是设置一下。首先,我们为了能够编译和运行java程序,需要在PATH环境变量中把java.exe所在的目录设置为PATH变量的一部分,目的是为了能够通过命令行运行javac和java命令成为可能,当你在命令行中输入javac ...或者java ...的时候,如果提示你一个错误:'javac' 不是内部命令或外部命令,也不是可运行的程序或批处理文件。这时候说明操作系统没有找到你通过命令行输入的javac这个命令,为什么呢?因为操作系统并 不知道你的javac.exe这个文件在哪里,所以无法执行对应的文件。那么为了能够让操作系统找到这个可执行文件,我们就需要把javac.exe这个可执行文件所在的目录作为PATH环境变量的一部分设置起来,这样当你在命令行输入一个命令的时候,操作系统就会自动搜索PATH变量中所指定的所有目录了。在Windows系统中PATH变量中的所有路径采用分号分割,如果在Linux系统中采用冒号分割。另外说明一点,如果你设置好了环境变量,在命令行中还是出现同样的错误,那么有两种可能,一种就是你的设置不正确,另一种就是你的设置没有生效,一般你可以关闭命令行窗口再重新打开就可以了。这对这个设置,以刚才的目录为例,那么PATH变量中的内容就是...;d:\\jdk1.6.0\\bin,这时候我们可以借用已经设定过的JAVA_HOME,将PATH的内容修改为:...;%JAVA_HOME%\\bin,这样的设置有一定的好处,当你的系统中重新安装JDK,并改变过目录的话,你只要修改JAVA_HOME的内容就可以了,PATH则不需要修改。此外,JAVA_HOME变量还会有一些其他用途,比如Eclipse这个IDE,它本身是由java程序编写的,那么在运行的时候必然需要虚拟机的存在,所以Eclipse在启动时需要查找虚拟机,如果有JAVA_HOME这个变量,那么 Eclipse就会利用这个变量找到虚拟机的路径。所以虽然开始JAVA_HOME环境变量可以不设置,但是还是建议大家为以后考虑而设置上。
我们继续来谈论CLASSPATH的问题,很多书上在讲解java程序的时候建议大家设置CLASSPATH这个环境变量,我们这里不建议大家设置。原因我们会在稍后的时候看到。讲到CLASSPATH,我们首先来看编写java程序时一直在用的两个命令javac和java。
javac的命令语法是这样的: javac <选项> <源文件> 我们常用的情况是这样的:
javac -classpath <类路径> <要编译的java源文件>
这里的类路径输入什么呢?这里的类路径是指要编译的java源文件中所用的非java的基础API中的类在那个目录下,路径可以是多个目录,用分号隔开 来。比如说我们要编译App.java这个文件,而这个文件中用到了com.util这个包中的MyDate这个类,现在我们假设MyDate这个类存在目录是:
d:\\mylib\\com\\MyDate.class,那么我们如何编译App这个类呢?我们的命令如下:
javac -classpath d:\\mylib App.java
注意这里的classpath的内容,我们只是指定路径到package所在目录,并不能把package一起指定进去,而且MyDate.class必须在com\,"p":{"h":18,"w":72.029,"x":584.625,"y":538.533,"z":226},"ps":null,"t":"word这个目录中,因为这个类定义了package为com.util。好了现在你对javac中的classpath明白了吗?
我们再来看java这个命令,这个命令的语法是这样的: java [选项] 类 [参数]
比如说以上面的例子,我们假设App这个类位于com.app这个package中,它的存放目录是:d:\\dev\\myapp\\com\\app\\App.class,那么我们该如何运行这个类呢?命令如下:
java -classpath d:\\dev\\myapp;d:\\mylib com.app.App
从命令中我们可以看到,在classpath后面我们指定两个目录,分别是App这个类的package所在的目录和MyDate这个类的package 所在的目录,这里的类路径要给定的是要运行的类和这个类用到的所有类的package所在的目录,多个目录之间用分号隔离开来,最后指定要运行的类的时候必须加上package。
好了到这里你应该彻底掌握了编译java程序和运行java程序的诀窍了吧。如果我们在系统环境变量中设置了CLASSPATH的话,在命令行中通过java运行的时候如果再不指定CLASSPATH参数,那么就会导致java虚拟机只是按照CLASSPATH环境变量中的目录搜索类,而不在你的当前目录下搜索类,结果自然
会出现Exception in thread \"main\" java.lang.NoClassDefFoundError,所以当你看到这个错误的时候请查看一下你的系统环境变量,如果没有设置 CLASSPATH,那么在检查一下你的当前目录。为了确保万无一失,按照上面讲述的例子进行操作是不会发生任何错误。
最后祝遇到此类的麻烦的朋友早日解决问题!、
下载好的JDK是一个可执行安装程序,双击安装。将安装路径改为:C:\\Program Files\\Java\\jdk1.6.0_02(当然其他路径也可以)。
JDK安装完成之后我们来设置环境变量:
我的电脑点右键,选择“属性”,选择“高级”标签,进入环境变量设置,分别设置如下三个环境变量:
(1)设置好path变量,使得我们能够在系统中的任何地方运行java应用程序,比如javac、java、javah等等,这就要找到我们安装JDK的目录,比如我们的JDK安装在C:\\jdk1.6.0目录下,那么在C:\\jdk1.6.0\\bin目录下就是我们常用的java应用程序,我们就需要把C:\\Program Files\\Java\\jdk1.6.0_02\\bin这个目录加到path环境变量里面。
在系统变量里找到path变量,选择->编辑;(里面已经有很多的变量值,是在变量值的最前面加上C:\\Program Files\\Java\\jdk1.6.0_02;)
变量名: path
变量值: C:\\Program Files\\Java\\jdk1.6.0_02\\bin;
(2)classpath环境变量,是当我们在开发java程序时需要引用别人写好的类时,要让java解释器知道到哪里去找这个类。通常,sun为我们提供了一些额外的丰富的类包,一个是dt.jar,一个是tools.jar,这两个jar包都位于C:\\Program Files\\Java\\jdk1.6.0_02\\lib目录下,所以通常我们都会把这两个jar包加到我们的classpath环境变量中set classpath=.;C:\\Program Files\\Java\\jdk1.6.0_02\\lib\ools.jar;C:\\Program Files\\Java\\jdk1.6.0_02\\lib\\dt.jar。
在系统环境变量那一栏中点->新建classpath
变量名: classpath
变量值: .;%JAVA_HOME%\\lib\ools.jar;%JAVA_HOME%\\lib\\dt.jar;(注意,CLASSPATH最前面是有个“.”的,表示当前目录,这样当我们运行java AClass的时候,系统就会先在当前目录寻找AClass文件了。);
(3)设置JAVA_HOME:
一是为了方便引用,比如,JDK安装在C:\\Program Files\\Java\\jdk1.6.0_02目录里,则设置JAVA_HOME为该目录路径, 那么以后要使用这个路径的时候, 只需输入%JAVA_HOME%即可, 避免每次引用都输入很长的路径串;
二则是归一原则, 当JDK路径改变的时候, 仅需更改JAVA_HOME的变量值即可, 否则,就要更改任何用绝对路径引用JDK目录的文档, 要是万一没有改全, 某个程序找不到JDK, 后果是可想而知的----系统崩溃!
三则是第三方软件会引用约定好的JAVA_HOME变量, 不然, 你不能正常使用该软件.
在系统环境变量那一栏中点->新建JAVA_HOME (JAVA_HOME指向的是JDK的安装路径)
变量名: JAVA_HOME
变量值: C:\\Program Files\\Java\\jdk1.6.0_02
配置完成下面写一个简单的java程式来测试J2SDK是否已安装成功:
public class HelloWorld{
public static void main(String[] args){           System.out.println(\"Hello world!\");         } }
将程式保存为文档名为HelloWorld.java的文档。
打开命令提示符窗口,进入到HelloWorld.java所在目录,键入下面的命令
javac HelloWorld.java   java HelloWorld
此时若打印出来HelloWorld则安装成功,若没有打印出这句话,仔细检查以上配置是否正确。
环境变量配置成功后你就可以着手学习java了。