Java环境变量

首先环境变量其实就是一组变量,就如你在java定义的变量一样,它的作用是给系统和应用程序提供参数。具体到细节,例如path,它是系统中的一个重要变量,它告诉系统和应用程序一些系统必备的程序的存储位置,例如你想在命令行窗口中使用ipconfig命令查看自己的ip地址,可是系统怎么知道ipconfig这个程序在什么位置呢?答案是通过path,从头到尾挨个的取出每个参数来试,例如path中有个C:/WINDOWS/system32的话,那吹它就加上ipconfig,看能不能找到程序,现在也就是说变成了C:/WINDOWS/system32/ipconfig如果能找到它的话就运行,不能的话就返回“‘ipconfig’不是内部或外部命令,也不是可运行的程序或批处理文件。”


    而对于java来说,你在命令行里面输入java xxx的话系统同样不知道java这个exe文件的位置,同样需要你显式的指出,java这个程序在哪呢?在你的jdk安装路径/bin文件夹里面,也就是说要想运行java,path必须指向bin文件夹。还有一个classpath,现在系统能找到java这个程序了,但是仅仅这样的话,你在命令行中输入javac的话,又出现错误了,也许有人会说你不是说系统通过path找到了,应该能找到我设置的bin文件下的javac程序呀?这里要说的是,虽然你已经设置好了path但是系统还是有些东西找不到,什么东西呢?Java的类库文件,大家知道java的源程序上面总是有很多的形如import java.xx.xx;的语句,这就是引用的java的类库,也许有人会问,我的程序中没有这一句话呀,对,很多简单的程序都没有,例如经典的“Helloworld”里面就没有,对它是没有显式的引用,但是在每个java文件中都隐藏了这么一句“import java.lang.*”;现在问题就出来了,程序怎么才能找到这个lang这个包并且把里面的类导进去呢?显然只通过path是不行的,那么就只能另外的定义一个变量来指向类库文件。它就是classpath,为什么叫这个名字呢?不为什么,就规定了必须用这个名字,它必须叫这个名字,可以理解为它是在java的jdk中定义的一个static的变量,既然已经定义好了,你只用给它赋值就得了,然过jdk调用的时候它没有值,就是说你没有新建一个classpath并且给它赋值,那么没办法,就给你脸色看。


    另外还有一点就是可能有人会问JAVA_HOME变量是一个什么变量呀,这个变量在目前的阶段来说就是一个我们自己定义的变量,它作用就是让你省劲,例如你的jdk安装的路径很深,譬如安装到了“C:/Program Files/Sun/Java/jdk1.6.0_02/”下边然后你在设置path的时候必须输入“C:/Program Files/Sun/Java/jdk1.6.0_02/bin”,设置classpath的候再来一次“C:/Program Files/Sun/Java//jdk1.6.0_02/lib/tools.jar”,你不累系统都烦了,而且path、classpath也变得很长了,下一次设置的时候就变得很麻烦了,要找半天才能找到自己要改的地方,现在JAVA_HOME就出现了,你可以在系统中定义一个名为JAVA_HOME的环境变量,它的值是:“C:/Program Files/Sun/Java/jdk1.6.0_02”,那么在设置path的时候就可以直接写了,在path的值里面添加:“%JAVA_HOME%/bin”,就是这么简单,相应的classpath为:“,;%JAVA_HOME%/tools.jar”是不是简洁多了呢?而且你的安装路径变了或者写错的时候要改也只用改这一处,不用把path和classpath同时修改。到了这里我继续叨叨几句,JAVA_HOME可以不大写,甚至名字都可以变成“sxy”,“a”,或者你能想到的其他,反正只要在引用它(就是系统在看到有%%围绕的变量时就把它替换成变量的值,例如上面的“%JAVA_HOME%/bin”系统看到这个的时候就把%JAVA_HOME%变成了C:/Program Files/Sun/Java/jdk1.6.0_02)保证名称一样(大小写不敏感),但是如果以后你要是使用tomcat等软件的时候,它会检查你的JAVA_HOME变量,所以最好保持这个名字不变,但是你如果现阶段不用,就随便了。现在明白了,也许有人会说我啰嗦,没办法放出一个环境变量的例子来:

JAVA_HOME=C:/Program Files/Java/jdk1.6.0_02(等号前面代表变量名,后来表示值,这样详细的解释感觉自己智商在下降~~后边的是你的jdk的安装位置,如果你的jdk是1.6安装的时候默认的话,那么就这样设置就行了,不是的话相应改变);

Path加上一句(!!!注意是加上,不是把原来的东西给去掉,那么的话很多程序就不能运行了,然过你去掉了的话跟我联系,)%JAVA_HOME%/bin

Classpath=.;%JAVA_HOME%/lib/tools.jar;另外一点就是最好把你放置自己写的程序的位置也加进来。例如你平常程序都放在d:/source下,那么直接加上就可以了,别忘了分号~~~ 

 

 

JAVA_HOME指明JDK安装路径
Path使系统可以在任何路径下识别java命令
CLASSPATH为java加载类(class or lib)路径

以上设置不分大小写

Windows在我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量
liunx还没玩过,不知-_-!!!

JAVA_HOME=安装目录(例如C:/jdk) 
classpath=.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;
path=%JAVA_HOME%/bin 

 

回答者: 5780219 - 五级   2008-4-15 11:09

JAVA_HOME=安装目录(例如C:/jdk) 
classpath=.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar; 
path=%JAVA_HOME%/bin 

回答者: sfq1984sxs - 四级   2008-4-15 11:38

你说的这三个,都是环境变量。
某个进程在执行的过程中可能需要知道一些配置信息才能继续工作,这些信息可以从配置文件读取,从数据库读取,但那些都属于比较独特的做法。最通用的做法,是利用操作系统提供的环境变量的机制。比如tomcat的启动脚本,resin的启动脚本都需要知道jdk安装在什么位置
java_home就是在告诉某个进程jdk安装到哪儿了
path一般是操作系统的shell用来找可执行文件用的,也就是说如果你不写全路径就说要执行某个可执行文件,shell会到path里指定的目录挨个找你说的文件。
CLASSPATH是告诉java虚拟机(未必是sun的),要执行的类都可以从那些目录或者jar里找到,当然这个不是必须的,通常可以通过命令行参数指定,不如sun jdk可以用java -cp .来达到相同的目的。

设置的方法各个操作系统都会不同,Windows都是右键点我的电脑属性里去找,xp,vista都不同,但不难找到

unix/linux下,都是用命令行
CLASS_PATH=要设定的东西
export CLASS_PATH

现在很多shell都可以直接写
export CLASS_PATH=要设定的东西

当然,分隔符会不同
windows是  目录1/目录2;目录3
unix是     目录1/目录2: 目录3 
上面的定义都很正确,我想说的是这个环境变量你只要知道有什么用就可以了,它就是为了程序编译运行的时候电脑根据这些配置寻找这个程序运行要用到的类方法等存放的位置用的,以便可以调用.
不需要很了解. 

回答者: sunsoftboy - 一级   2008-4-15 15:53

JAVA_HOME就是jdk的安装目录、

操作系统通过PATH里的路径来寻找要执行的程序,比如你在path里添加了%JAVA_HOME%/bin,那么在命令提示符下你可以直接执行该目录下的所有可执行程序

CLASSPATH就是JAVA虚拟机寻找class文件的路径 

回答者: 林汤姆 - 一级   2008-4-15 16:42

java_home指定JDK安装路径,配不配无所谓 
path使系统可以识别java 
calsspath是java加载路径
需要注意的是
calsspath添加在上面一栏 你自己的用户可以使用其他用户名进来不能使用 加在下面是public 都可以用,以上同理 

回答者: kutty110 - 四级   2008-4-15 18:42

JAVA_HOME = 你的安装路径
PATH = %JAVA_HOME%/bin;
CLASSPATH = .;%JAVA_HOME%/lib/tools.jar;%JAVA_HOME%/lib/dt.jar

java_home要配的,tomcat只认javahome哦 

回答者: opensky010 - 五级   2008-4-15 18:58

java_home
指的是java的安装目录,系统本身是不需要配置这项的,但是其他软件比如tomcat就会从这里找java如果你不配置他们就找不到java了
path
指的是系统查找执行文件的位置,比如如果你想直接在<开始-运行>里运行某个项目,这个东西必须在path目录里,不然系统会说找不到
classpath
这个指的是java程序自动查找class的位置,就如path一样,如果你发现什么时候运行时说找不到某个class,你就需要考虑这个了

以上3个变量不区分大小写,这是windows平台

liunx平台大同小异,除了一些分隔符比如windows平台使用的"/"liunx平台是使用"/",其他都一样 
关于java环境变量的设置问题我也帮其他的一些网友解决过,貌似都可以了.现在我把我解答的复制过来给你看看(因为懒,不想再重复敲一次相同的内容),如果你这么去做了,我相信应该能行的.你试试,如果行就给分,不行就发消息问我,我帮你弄....)



变量说明:
java_home的值为:jdk的安装路径(建议安装jdk时不要选择默认安装)
path的值为:jdk的安装路径/bin 

现在知道变量是值应该是什么了,那么也许这样设,更能够帮助你理解环境变量是如何设置的... 

假设jdk的安装路径为: "F:/jdk_安装目录",则有: 
java_home: 
F:/jdk_安装目录 
备注:java_home这个变量可以不设,不过我还是设的.其值就是你jdk的安装路径..如果你要设,直接复制过去然后粘贴上就OK了..如果没有java_home这个环境变量,就创建一下好了.后面的path,classpath也是一样,没有就直接新建一下,有的话,你就把我给出的值复制然后粘贴就成了...需要注意的是,如果该变量本身有的话,你复制过去的值应该粘贴在最后面,并且用分号隔开...(计算机原来的值;环境变量的值) 

path: 
F:/jdk_安装目录/bin 

classpath: 
.;F:/java;. 
备注:.;F:/java;.这个值可能看不清,我这里用汉字说明一下:点 分号 F:/java 分号 点
当然你也可以设成.;C:/java;.或者.;D:/java;.等等都行 
classpath这样设的话你无论在哪个路径下运行java文件都可以的...当然也许会有更好的方法




(PS:如果不小心把变量删掉了怎么办呢?没关系的,新建一下然后设值就行了) 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值