您的位置:首页 > 其它

Windows下JA VA环境变量的设置详解

2010-12-11 10:00 295 查看
Windows下JA VA环境变量的设置详解
.jar文件是java中的class文件打包而成的,相当于类库,你可以用winzip打开看看,
可以用jdk中的jar.exe程序生成,

你写过java程序吗?肯定写过,那你就用过这个东西,
import java.io.*;(对不起,我很久没写过了,不只对不对)
比如你在程序中用到了java.io中的一个类system,那么编译器如何找这个类
它会到java.io这个名称空间中找,这个名称空间中的所有类就在某个.jar文件中,你看一下在系统的环境变量中有一个classpath比如
set PATH=%PATH%;%JAVA_HOME%/bin;%JAVA_HOME%/lib;%JAVA_HOME%/jre/lib
set CLASSPATH=%CLASSPATH%;%JAVA_HOME%/lib;%JAVA_HOME%/lib/tools.jar
那么这些.jar文件就在这些目录下。
同样比如你自己定义了一些类,同样可以打包后放在这些目录中以供以后引用

Windows下JAVA用到的环境变量主要有3个,JAVA_HOME、CLASSPATH、PATH。下面逐个分析。

JAVA_HOME指向的是JDK的安装路径,如x:/JDK_1.4.2,在这路径下你应该能够找到bin、lib等目录。值得一提的是,JDK的安装路径可以选择任意磁盘目录,不过建议你放的目录层次浅一点,如果你放的目录很深,比如x:/XXXXXX/xxxxx/XXXX/xxxx/XXXX/xxxx/XXXX/xxx……
那么,下面的步骤和以后的应用你都要受累了,呵呵。设置方法:
JAVA_HOME=x:/JDK_1.4.2

PATH环境变量原来Windows里面就有,你只需修改一下,使他指向JDK的bin目录,这样你在控制台下面编译、执行程序时就不需要再键入一大串路径了。设置方法是保留原来的PATH的内容,并在其中加上%JAVA_HOME%/bin (注,如果你对DOS批处理不了解,你可能不明白%%引起来的内容是什么意思;其实这里是引用上一步设定好的环境变量JAVA_HOME,你写成x:/JDK_1.4.2也是可以的;你可以打开一个控制台窗口,输入echo %JAVA_HOME%来看一下你的设置结果) :
PATH=%JAVA_HOME%/bin;%PATH%
同样,%PATH%是引用以前你设置的PATH环境变量,你照抄以前的值就行了。

CLASSPATH环境变量我放在最后面,是因为以后你出现的莫名其妙的怪问题80%以上都可能是由于CLASSPATH设置不对引起的,所以要加倍小心才行。
CLASSPATH=./;%JAVA_HOME%/lib/tools.jar

CLASSPATH=./;%JAVA_HOME%/lib/tools.jar;%JAVA_HOME%/lib/dt.jar

CLASSPATH=%JAVA_HOME%/lib/dt.jar

dt.jar 是javax.swing包的支持
如果你运行的app没有gui界面,这个不是必须的;环境变量中也不需设置

查询了一个答案
java设置环境变量时加载的两个包dt.jar和tools.jar有什么作用?
还有设置classpath=.;%JAVA_HOME%/lib的用途是什么?

基本上都是已经过时的用法。jdk1.3以上都可以不用设。

dt.jar好像是swing的一些什么类,Eclipse开发环境默认的JRE也没有包括它。应该没用。
tools.jar应用服务器用来编译JSP文件,应用服务器自己会加载,不需要自己设置。

classpath=.; 如果你没有设置classpath,那么默认的classpath就有“.”这个目录,所以不用设,
如果你另外设置了classpath,就把它加在前面。

%JAVA_HOME%/lib;这个完全没用

JAVA中常用需要设置的三个环境变量:
JAVA_HOME、CLASSPATH、PATH
(一)  配置环境变量:(相对路径)
1.
JAVA_HOME=x:/jdk1.6.0 JAVA_HOME
2.
用%JAVA_HOME%就可以取代:x:/jdk1.6.0这一部分
CLASSPATH
.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/activation.jar:$JAVA_HOME/lib/mail.jar

CLASSPATH
./;%JAVA_HOME%/lib/tools.jar;%JAVA_HOME%/lib/dt.jar
3.
PATH
;%JAVA_HOME%/bin
(二)  配置环境变量:(绝对路径)
1.
JAVA_HOME
D:/jdk1.5.0
2.
CLASSPATH
.;D:/jdk1.5.0/lib/tools.jar;D:/jdk1.5.0/jre/lib/rt.jar;
3.
PATH
D:/jdk1.5.0/bin;
(三)
把下面的代码用批处理执行,对设置环境变量会很方便的
@echo off
IF EXIST %1/bin/java.exe (
rem如输入正确的 Java2SDK 安装目录,开始设置环境变量
@setx JAVA_HOME %1
@setx path %path%;%JAVA_HOME%/bin
@setx classpath %classpath%;.
@setx classpath %classpath%;%JAVA_HOME%/lib/tools.jar
@setx classpath %classpath%;%JAVA_HOME%/lib/dt.jar
@setx classpath %classpath%;%JAVA_HOME%/jre/lib/rt.jar
@echo on
@echo Java 2 SDK环境参数设置完毕,正常退出。
) ELSE (
IF "%1"=="" (
rem如没有提供安装目录,提示之后退出
@echo on
@echo没有提供 Java2SDK 的安装目录,不做任何设置,现在退出环境变量设置。
) ELSE (
rem如果提供非空的安装目录但没有bin/java.exe,则指定的目录为错误的目录
@echo on
@echo非法的 Java2SDK 的安装目录,不做任何设置,现在退出环境变量设置。
)
)
(四)其它做法参考
cmd命令设置
SET PATH = c:/j2sdk1.4.0/bin
---------------------------------
安装完之后,设置环境变量:我的电脑---属性---高级---环境变量;
选择---系统变量(S):
设置JAVA_HOME环境变量:
单击---新建,在变量名中输入:JAVA_HOME
在变量值中输入:D:/Java
(假设J2SDK安装在目录D:/Java下,反正就是J2SDK的安装目录。)
然后---确定,到此已经设置好JAVA_HOME环境变量。
设置CLASSPATH环境变量:
单击---新建,在变量名中输入:CLASSPATH
在变量值中输入:D:/Java/bin;.;D:/Java/lib;D:/Java/lib/dt.jar;D:/Java/lib/tools.jar
(中间的点号“.”和分号“;”必不可少。)
然后---确定,到此已经设置好CLASSPATH环境变量。
设置PATH环境变量:
单击---新建,在变量名中输入:PATH
在变量值中输入:D:/Java;.;D:/Java/bin
(中间的点号“.”和分号“;”必不可少。)
然后---确定,到此已经设置好JAVA_HOME环境变量。
java_HOME在设定tomcat时需要用到不学jsp估计没用只用classpath和path就ok
dt.jar是关于运行环境的类库,tools.jar是关于一些工具的类库

首先要注意的是最前面的"./;",如果你看不清,我给你念念——句点反斜杠分号。这个是告诉JDK,搜索CLASS时先查找当前目录的CLASS文件——为什么这样搞,这是由于LINUX的安全机制引起的,LINUX用户很明白,WINDOWS用户就很难理解(因为WINDOWS默认的搜索顺序是先搜索当前目录的,再搜索系统目录的,再搜索PATH环境变量设定的) ,所以如果喜欢盘根究底的朋友不妨研究一下LINUX。
为什么CLASSPATH后面指定了tools.jar这个具体文件?不指定行不行?显然不行,行的话我还能这么罗索嘛!:) 这个是由java语言的import机制和jar机制决定的,你可以查资料解决。

呵呵,具体的设定方法: win2k/xp用户右键点击我的电脑->属性->高级->环境变量,修改下面系统变量那个框里的值就行了。
win9x用户修改autoexec.bat文件,在其末尾加入:
set JAVA_HOME=x:/JDK_1.4.2
set PATH=%JAVA_HOME%/bin;%PATH%
set CLASSPATH=./;%JAVA_HOME%/lib/tools.jar
就可以了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: