Java菜鸟学习笔记--配置篇(一):Windows JDK环境变量配置与常见问题

一.环境变量的配置

1.1 配置过程:

windows xp下配置JDK环境变量:
      1.安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为D:/java/jdk1.5.0_08;

  2.安装完成后,右击“我的电脑”,点击“属性”;

      3.选择“高级”选项卡,点击“环境变量”;

      4.在“系统变量”中,设置3项属性,JAVA_HOME,PATH,CLASSPATH(大小写无所谓),若已存在则点击“编辑”,不存在则点击“新建”;

      5.JAVA_HOME指明JDK安装路径,就是刚才安装时所选择的路径D:/java/jdk1.5.0_08,此路径下包括lib,bin,jre等文件夹(此变量最好设置,因为以后运行tomcat,eclipse等都需要依*此变量);
     

       Path使得系统可以在任何路径下识别java命令,设为:

%JAVA_HOME%/bin;%JAVA_HOME%/jre/bin

    CLASSPATH为java加载类(class or lib)路径,只有类在classpath中,java命令才能识别,设为:

.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar (要加.表示当前路径)

  %JAVA_HOME%就是引用前面指定的JAVA_HOME;

       6.“开始”->;“运行”,键入“cmd”;

       7.键入命令“java -version”,“java”,“javac”几个命令,出现画面,说明环境变量配置成功;

       8.好了,打完收工。下面开始你的第一个java程序吧。

下面讲讲java几个环境变量的含义和linux下的配置方法:

 

通常,我们需要设置三个环境变量:JAVA_HOME、PATH 和 CLASSPATH。

JAVA_HOME:该环境变量的值就是 Java 所在的目录,一些 Java 版的软件和一些 Java 的工具需要用到该变量,设置 PATH 和 CLASSPATH 的时候,也可以使用该变量以方便设置。

PATH:指定一个路径列表,用于搜索可执行文件的。执行一个可执行文件时,如果该文件不能在当前路径下找到,则依次寻找 PATH 中的每一个路径,直至找到。或者找完 PATH 中的路径也不能找到,则报错。Java 的编译命令 (javac),执行命令 (java) 和一些工具命令 (javadoc, jdb 等) 都在其安装路径下的 bin 目录中。因此我们应该将该路径添加到 PATH 变量中。

CLASSPATH:也指定一个路径列表,是用于搜索 Java 编译或者运行时需要用到的类。在 CLASSPATH 列表中除了可以包含路径外,还可以包含 .jar 文件。Java 查找类时会把这个 .jar 文件当作一个目录来进行查找。通常,我们需要把 JDK 安装路径下的 jre/lib/rt.jar (Linux: jre/lib/rt.jar) 包含在 CLASSPATH 中。

PATH 和 CLASSPATH 都指定路径列表,列表中的各项 (即各个路径) 之间使用分隔符分隔。在 Windows 下,分隔符是分号 (;),而在 Linux 下,分隔符是冒号 (:)。

下面分别说明三个环境变量在 Windows 和 Linux 下如何设置,不过在此之前,我们需要做个假设。假设 JDK 在 Windows 下的安装路径是 C:/jdk/,在 Linux 下的安装路径是 /usr/local/jdk/。那么,安装后的 JDK 至少会包括如下内容:

C:/jdk (/usr/local/jdk)
|-- bin
|-- demo
|-- include
|-- jre
| |-- bin
| `-- lib
`-- lib

***** 在 Windows 下设置

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

set JAVA_HOME=C:/jdk
set PATH=%JAVA_HOME%/bin;C:/Windows;C:/Windows/Command
set CLASSPATH=%JAVA_HOME%/jre/lib/rt.jar;.

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

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

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

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

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

2.1补充环境变量的解析:

JAVA_HOME:jdk的安装路径

classpath:java加载类路径,只有类在classpath中java命令才能识别,在路径前加了个"."表示当前路径。

path系统在任何路径下都可以识别java,javac命令。


二.环境变量没配置好引起的问题

2.1 问题描述如一:

问题显示:Exception in thread "main" java.lang.NoClassDefFoundError: Hellojava (wrong name: hellojava)


Java菜鸟学习笔记--配置篇(一):Windows JDK环境变量配置与常见问题_第1张图片

修改:

出现这个问题一开始找了网上,综合起来都是说 classpath 没有设置好,修改了好多次。还是没有成功,最后转念一想,是不是犯了低级错误,没有在CMD目录下使用 java xxx(类名)这个命令,然后切换到 Hellojava.class 的文件目录下,居然成功了。Java菜鸟学习笔记--配置篇(一):Windows JDK环境变量配置与常见问题_第2张图片


2.2 问题描述如二:

问题显示:Exception in thread "main" java.lang.NoClassDefFoundError

分析 八成都是环境变量设置有问题(还有部分是输错类名造成的),环境变量问题的解决方法之一是创建 classpath项。

修改:

1.环境变量加入路径前加入".;",(用于指定当前目录下)然后重启一下dos窗口,重新运行。

2.注意配置CLASSPATH项时候看是不是这样(.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;注意第一个逗号)

3.修改完调试测试

2.2 文件名与类名不一致引起错误

简述:用文本编写java代码时候,class名要和文件名一直,不一致则编译错误。
显示:
Java菜鸟学习笔记--配置篇(一):Windows JDK环境变量配置与常见问题_第3张图片

三.配置JDK环境变量一起其他默认命令(ping, route等等)不能使用问题


简述:在配置jak环境变量后,删除了原来系统环境变量引起的问题
显示:
Java菜鸟学习笔记--配置篇(一):Windows JDK环境变量配置与常见问题_第4张图片

修改:

windows默认的path至少有这两项:%SystemRoot%\system32; %SystemRoot%。把这两项加进path环境变量就行了。


作者:YangGan
出处:http://blog.csdn.net/incyanggan
本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名Yanggan(包含链接).


你可能感兴趣的:(Java菜鸟学习笔记--配置篇(一):Windows JDK环境变量配置与常见问题)