Long long ago in a galaxy far,far away......
HakunaMatata
主页博客相册|个人档案 |好友
 
查看文章
 
为什么要设置JAVA_HOME&Path&CLASSPATH&CATALINA_HOME
2008-01-19 14:26

首先得介绍下面几个参数的作用:

current directory(当前目录):
当前在用的目录就是当前目录。比如说当你打开NOTEPAD,并处于运行状态时候,当前目录就是c:/windows;如果你用cmd命令打开命令行窗 口,当前目录就是c:/windows/system32;如果你在用java这条指令,当前目录就是JAVA下的BIN目录所在的路径,因为 java.exe在bin里面。
在java开发配置环境变量时,系统默认(我们对classpath不做任何设定时)的路径也是当前目录。

JAVA_HOME:
它是指jdk的安装目录,像D:/j2sdk1.4.2_16。
可以新建一个JAVA_HOME变量,它的取值为D:/j2sdk1.4.2_16。
为什么要设置它呢,不设定可不可以呢?不设定也是可以滴,但是最好还是设置一下。
我们现在就当它是一个变量代换 JAVA_HOME = D:/j2sdk1.4.2_16,就是为了避免多写字,它还有一个好处就是当我们需要改变某个jdk时,只需要改JAVA_HOME的值就可以了。等在后面看了Tomcat的启动分析时你就明白了。
当在环境变量中引用它的时候要用%JAVA_HOME%来表示D:/j2sdk1.4.2_16。

Path:
系统变量Path告诉操作系统可执行文件(*.exe、*.bat等)所在的路径,当OS(操作系统)发现某个*.exe时,windows默认从当前目录开始查找这个命令,若查不到,OS就会到Path所设定的路径中去寻找该命令,然后执行。
系统默认的系统变量为:Path = %SystemRoot%;%SystemRoot%/system32;%SystemRoot%/System32/Wbem
就是说处于上面3个目录(多个变量用分号隔开)中的*.exe文件,可以在任意地方被执行(在 运行 窗口能直接执行的命令,像cmd、notepad等,基本都在上面的3个目录里面),所以他们可以直接运行。
上面的%SystemRoot%是什么意思呢?%SystemRoot%就是安装操作系统的时候,系统默认的安装路径
若你的windows xp装在C:/WINDOWS
则你的%systemRoot%路径就是c:/windows
%systemRoot%只是一个符号,代表你的系统安装目录
下面是常见系统默认安装路径:
98----c:/windows
2000--c:/winnt
2003--c:/windows
xp----c:/windows
当我们要进行java开发时,OS经常需要用到java.exe、javac.exe等,(若jdk安装在D:/j2sdk1.4.2_16)因此应该将D:/j2sdk1.4.2_16/bin(%JAVA_HOME%/bin)加入到系统的path中去。
注意:如果你加入的位置不是在最后,那还需要在bin后面加上英文状态下的分号:%JAVA_HOME%/bin;多个变量之间要用分号隔开,如果它前面没有,你就加一个。
明确一下:%JAVA_HOME%/jre/bin 这个路径是不需要加入Path的。参考:http://java.sun.com/javase/6/docs/technotes/tools/windows/jdkfiles.html

CLASSPATH:
CLASSPATH是专门针对java的,它相当于windows的path;path是针对整个windows的。
CLASSPATH告诉java虚拟机(jvm)要使用或执行的*.class文件放在什么地方。
所谓的JVM就好像是在微软OS上面再激活另外一个OS,对JVM来说CLASSPATH就好像是对微软OS来说的PATH,所以要用jvm开运行程序就 需要设定classpath,然而jvm像windows一样它也有个默认的查找class文件的路径,对刚开始学习java的我们来说,默认的已经够我 们用了,那就是当前路径,因此不设置classpath也可以。
在windows中 classpath 大小写没有关系,其他的环境变量名称也一样。
参照:
http://java.sun.com/javase/6/docs/technotes/tools/windows/classpath.html
The class path is the path that the Java runtime environment searches for classes and other resource files. The class search path (more commonly known by the shorter name, "class path") can be set using either the -classpath option when calling a JDK tool (the preferred method) or by setting the CLASSPATH environment variable. The -classpath option is preferred because you can set it individually for each application without affecting other applications and without other applications modifying its value.
如果你在classpath中用到 other resource files,那说明你已经熟悉classpath了,你可以自己随意设置。
The default class path is the current directory. Setting the CLASSPATH variable or using the -classpath command-line option overrides that default, so if you want to include the current directory in the search path, you must include "." in the new settings.-----这句话是说,当我们不设定classpath时,系统默认的classpath是当前目录,如果你个人想设置 classpath的话,那么务必在classpath中加入".",这个英文状态下的点就表示当前目录。
至于classpath中要不要加入其他的路径(包括文件目录、包的根目录等),这要看开发的需要,一般我们初学者是用不到的。

path的设置倒没有什么疑惑,但是classpath就有疑惑了,到底里面该不该加rt.jar ,dt.jar ,tool.jar呢?
可以肯定的是rt.jar是不需要的,jdk会自动加载。你可以用 java -verbose 命令来查看。
我们可以来研究一下%JAVA_HOME%/lib底下的 tools.jar 和 dt.jar 是甚么咚咚:
http://java.sun.com/javase/6/docs/technotes/tools/windows/jdkfiles.html 或者
http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/jdkfiles.html
那tools.jar,dt.jar到底需不需要加进classpath呢?我查过一些资料,在Sun JDK 1.2及后续版本中,包含了一组可在程序运行时刻编译和执行Java代码的API。这些API被包含在tools.jar类库中。这个功能允许Java程 序在运行时动态编译、执行小的代码块,在有些情况下这个功能会让Java应用程序的架构更加灵活、开放。本来还有个例子我看得不是太懂,就不贴出来了。
如果您现在还未明白什么是动态编译或者是否需要“动态编译java程序”,那就当作不需要;系统自己默认设定,阁下您也默认好了 ^_^

至于dt.jar包,在jdk1.4.0之后不用导入它,运行时会自动导入--这个是我在搜集了n个资料后选择的一个较安全放心的答案

CATALINA_HOME:
长话短说了,tomcat启动就不分析了,告诉你怎么设就可以了,在Tomcat 4以前,用的是TOMCAT_HOME来表示Tomcat的安装目录,中间还用过TOMCAT_BASE,在Tomcat 4以后,采用了新的Servlet容器Catalina,所以环境变量的名字也改为了CATALINA_HOME,所以设置的时候不用把这3个变量都设 了,要CATALINA_HOME就够了。如果你安装的是解压缩版的也可以不用设置CATALINA_HOME,直接双击bin里面的 startup.bat就可以了,关闭的时候有shutdown.bat。

综上:(在winXP中)以jdk安装目录为-D:/j2sdk1.4.2_16,tomcat安装目录为-D:/ApacheTomcat/apache-tomcat-6.0.14设置环境变量如下:你也可以参考http://java.sun.com/javase/6/docs/technotes/tools/windows/jdkfiles.html 自己决定那些是需要设置的。

JAVA_HOME = D:/j2sdk1.4.2_16
Path 环境变量中在最前面加入(若系统原来没有就新建) %JAVA_HOME%/bin; (加在最前面可以提高查找速度)
CLASSPATH = . 这一步可以不用设。
CATALINA_HOME = D:/ApacheTomcat/apache-tomcat-6.0.14 这一步也可以不要。(解压缩版)

JAVA_HOME PATH CLASSPATH相关推荐

  1. JAVA坏境变量中的JAVA_HOME path classpath 的设置与作用。

    JAVA坏境变量中的JAVA_HOME path classpath 的设置与作用. 今天再次设置java的环境变量,突然发现每次设置都只是按照步骤一步步将其设置完,并不了解为啥要设置,于是上网找了找 ...

  2. java的三个环境变量是啥_JAVA中常用需要设置的三个环境变量(JAVA_HOME、CLASSPATH、PATH)...

    JAVA中常用需要设置的三个环境变量: JAVA_HOME.CLASSPATH.PATH (一) 配置环境变量:(相对路径) 1. JAVA_HOME=x:/jdk1.6.0 2. 用%JAVA_HO ...

  3. JAVA环境变量JAVA_HOME、CLASSPATH、PATH设置详解

    转自:http://blog.163.com/dreamman_yx/blog/static/26526894200842414338201/ Windows下JAVA用到的环境变量主要有3个,JAV ...

  4. path classpath

    path 是一个环境变量,就像一个程序中你声明的一个变量有用户级和系统级的,可以理解为全局和局部变量变量当然是用来用的,这样系统就可以根据path=value的value来找到相应的可执行文件就像你在 ...

  5. JAVA的JDK环境变量的配置JAVA_HOME;PATH;CLASSHOME

    首先要在官网下载java 官网:http://www.oracle.com/technetwork/java/javase/downloads/ 到这个界面 选择我接受 记住该地址 最好的办法新建记事 ...

  6. JAVA_HOME和CLASSPATH设置

    1. 修改全局的环境变量 # vi /etc/profile export JAVA_HOME = /home/myuser/jdk1.7.0_03     export PATH = $JAVA_H ...

  7. java环境classpath_JAVA中的环境变量配置 PATH CLASSPATH

    1.CLASSPATH是什么?它的作用是什么? 首先,classpath 是javac编译器的一个环境变量.它的作用与import.package关键字有关.当你写下improt java.util. ...

  8. path,classpath

    1.path作用. 在环境变量里面配置 win+r 打开cmd qq窗口就弹开了. 2.classpath是java里的选项. java执行java类的时候,会去看这个java类是否在classpat ...

  9. java在所选路径中找到分号,classpath

    手机评站网今天精心准备的是<classpath>,下面是详解! Java环境变量中classpath是必须配置吗 设置环境变量 在java 中需要设置三个环境变量(1.5之后不用再设置cl ...

最新文章

  1. 八城联动丨神策 2020 数据驱动用户大会「成都站」邀您面基!
  2. 牛客题霸 [寻找第K大] C++题解/答案
  3. java \t怎么从头开始_如何从头开始以正确的面向对象方式创建Java Web Framework
  4. go语言基础之不同作用域同名变量
  5. SpringMVC学习(一)SpringMVC入门 、HelloSpringMVC程序、SpringMVC执行原理
  6. 计算机网络笔记(含王道计算机考研课件)
  7. 【征文】极客头条使用体验及改进建议
  8. 74hc595级联c语言程序,10个74HC595级联 单片机程序请教
  9. Apache服务器的下载、安装、配置等等
  10. 嵌入式开发-STM32硬件I2C驱动OLED屏
  11. word粘贴超出页面怎么办
  12. 重庆工商职业学院计算机专业在哪个校区,重庆工商职业学院地址在哪里
  13. 计蒜客T1003输出字符菱形
  14. 蓝牙【GATT】协议介绍
  15. Python详细介绍及使用(基础篇)
  16. 哪些蓝牙耳机便宜好用?便宜又好用的蓝牙耳机之王
  17. 计算机在我们生活中有哪些应用,计算机在生活中的应用有哪些?
  18. pv=nrt_PV=NRT中的R的单位是什么?
  19. Vue中获取组件声明时的name属性
  20. SSM框架实现登录注册功能

热门文章

  1. 中介分析 相对直接效应 相对简介效应_中介效应分析方法和流程
  2. 邻接矩阵中啥时候写0和无穷_集合中的上极限与下极限
  3. 输入字符串,统计英文字符、大写小写字母,数字字符,空格和其他字符
  4. 【团队】 冲刺一(10/10)
  5. 什么是微服务架构,该从哪些方面深入理解?
  6. 页面A使用window.open打开页面B,然后取得B的返回值
  7. C# 的tcp Socket设置自定义超时时间
  8. mysql mairadb skysql
  9. 硬链接与软链接的区别有哪些?
  10. jQuery选择器实现隔行变色和使用javaScript实现隔行变色