A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 haozi050 于 2014-2-4 20:52 编辑

path和classpath环境变量的作用,尽量详细点,谢谢。

评分

参与人数 1黑马币 +3 收起 理由
猎鹰tianya + 3 神马都是浮云

查看全部评分

13 个回复

倒序浏览
1.JAVAHOME就是安装目录.用在 PATH,CLASSPATH的设置中免去了你再写一长串的路径,用JAVAHOME就代替安装目录.

2.PATH:用于列出可执行文件的搜索路径.因为通过要通过命令行的命令启动JAVA,JAVAC等编译工具和解释工具,系统必须要知道他们所在的位置,PATH就是用来指明他们的位置的.

3.CLASSPATH该变量是JAVA加载类(class or lib)的路径.只有在classpath设置的路径中的类才能被加载.

评分

参与人数 1技术分 +1 收起 理由
ily521125 + 1 赞一个!

查看全部评分

回复 使用道具 举报
1、PATH环境变量的作用
在安装jdk程序后,在安装目录下的bin目录中会提供一些开发java程序时必备的工具程序。在没设置环境变量之前,在命令窗口输入javac时,会提示“javac不是内部或外部命令,也不是可运行的程序或批处理文件”,出现这种错误的原因就是操作系统在当前目录下找不到javac.exe工具程序,因此需要告诉操作系统应该到那些目录下尝试寻找,设置path的目的就是为操作系统指定寻找java工具程序的目录。
设置path变量后,需要重新打开命令符模式才能使设置生效,此时再执行javac命令将获得成功,显示javac的使用方法列表。这也就是当我们在命令窗口输入javac命令时,操作系统会尝试在指定的path变量中寻找指定的工具,由于我们在path设置了jdk的bin目录的路径,因此操作系统才能根据这个信息找到javac.exe。
2、CLASSPATH环境变量的作用
java执行环境本身就是一个平台,用于运行已编译完成的java程序(即class字节码文件)。如果设置path变量是为了让操作系统找到指定的工具程序,那么设置classpath变量的目的就是让java指定环境找到指定的java程序对应的class文件以及程序中引用的其他class文件。
JDk在默认情况下会到当前工作目录下(变量值用“.”表示)以及jdk的lib目录下寻找所需的class文件,因此如果java程序放在这两个目录下,即使不设置classpath变量执行环境也可以。但是如果java程序放在其他目录下,运行时则需要设置classpath变量。设置时要特别注意“.”,他是表示当前路劲,不然可能会出现javac编译正常但执行java命令时报错。
总之设置classpath的目的在于通知java执行环境在那些目录下可以找到所要执行的java程序。

评分

参与人数 1技术分 +1 收起 理由
ily521125 + 1

查看全部评分

回复 使用道具 举报
JAVA程序能够顺利编译需要两个环境变量,一个是PATH(path),一个是CLASSPAT(classpath)。那么这两个环境变量代表什么呢?或者说究竟在JAVA程序编译中有什么作用呢?这就要涉及到WINDOWS的基本知识了。在WINDOWS环境中,每一条能用的指令都保存在硬盘的“某个角落”,比如说指令NOTEPAD(WINDOWS的记事本指令,在C:\WINNT目录下),那么在DOS命令提示符下直接输入NOTEPAD就可以打开记事本了。但是一旦我们把C:\WINNT目录下的NOTEPAD.EXE这个可执行文件移开(比如说我们现在把它“剪切”到D盘根目录下)我们再在DOS提示符下直接输入NOTEPAD时就无法再打开记事本了,但是我们在DOS下改变路径输入D:\NOTEPAD(或者先输入cd D: 在输入NOTEPAD也行)就可以打开记事本了。这就是说在我们直接输入NOTEPAD的时候,其实其默认路径就是C:\WINN。假设我们要运行一个JAVA程序(hello.java)就要先把它的class文件移动到JAVA里的bin目录下  然后打开DOS,把路径改到JAVA的BIN目录下 执行java hello.class,一次无所谓 但是每次都要这样去做未免太麻烦。还好WINDOWS提供了一个PATH环境变量,他的作用就是现在这个变量的值路径中去找,如果找到了要运行的EXE就运行,否则失败。如果我们把JAVA里的bin目录这个路径赋给path那么下次我在运行java这个命令的时候,即便是直接输入DOS也能够在path变量中找到JAVA的bin目录下的java指令了。
    下面说说,classpath环境变量。不知道各位注意到没有,我上面说的那句话——“假设我们要运行一个JAVA程序(hello.java)就要先把它的class文件移动到JAVA里的bin目录下”,为什么要这样做呢?因为我们在用到java hello.class这条指令的时候,DOS不知道hello.class这个文件在哪里,他就先到当前目录中去找,如果找到就运行,否则失败。当然,如果说hello.java在D盘根目录下,你也可以用java D:\hello.class这条指令来运行,但是每次这样做也确实够麻烦。WINDOWS就提供了这样一个环境变量——classpath,如果没有就应该新建一个。我们把D:\这个路径赋值给classpath,那么下次在运行java hello.java的时候就先在当前目录中到,如果找到就运行,如果找不到就在classpath的值路径下去找,找到就运行,找不到就失败。

评分

参与人数 1技术分 +1 收起 理由
ily521125 + 1

查看全部评分

回复 使用道具 举报
小悠久 发表于 2014-1-7 22:21
1.JAVAHOME就是安装目录.用在 PATH,CLASSPATH的设置中免去了你再写一长串的路径,用JAVAHOME就代替安装目录 ...

也就是说要想使用Java中已有的类,为方便起见,就必须把lib配置到classpath中,自己写的类所在路径是不是也要配置到classpath中?
回复 使用道具 举报
运行路径path变量记录的是各个程序所在的路径,系统根据这个变量的值来查找运行程序(各种命令),使得在运行的时候不用输入全路径名。

    类路径classpath环境变量通常用来记录当前路径和java类库所在的路径。在类库中包含java系统所提供的各种软件包,其中包括各个类和接口等

评分

参与人数 1技术分 +1 收起 理由
ily521125 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
. PATH环境变量。作用是指定命令搜索路径,在i命令行下面执行命令如javac编译java程序时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。我们需要把jdk安装目录下的bin目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如javac/java/javadoc等待,设置好PATH变量后,就可以在任何目录下执行javac/java等工具了。   2. CLASSPATH环境变量。作用是指定类搜索路径,要使用已经编写好的类,前提当然是能够找到它们了,JVM就是通过CLASSPTH来寻找类的。我们需要把jdk安装目录下的lib子目录中的dt.jar和tools.jar设置到CLASSPATH中,当然,当前目录“.”也必须加入到该变量中。

评分

参与人数 1技术分 +1 收起 理由
ily521125 + 1 赞一个!

查看全部评分

回复 使用道具 举报
个人理解是,如果把路径加入到path当中,就可以直接在命令行当中使用该程序了。而无需全路径。这意味着,window的cmd的工作原理可能是会根据path的路径去寻找运行程序。classpath提供类的路径。原理应该是一样的。只不过一个是.exe文件,一个是.class文件。
回复 使用道具 举报
1、PATH环境变量的作用
在安装jdk程序后,在安装目录下的bin目录中会提供一些开发java程序时必备的工具程序。在没设置环境变量之前,在命令窗口输入javac时,会提示“javac不是内部或外部命令,也不是可运行的程序或批处理文件”,出现这种错误的原因就是操作系统在当前目录下找不到javac.exe工具程序,因此需要告诉操作系统应该到那些目录下尝试寻找,设置path的目的就是为操作系统指定寻找java工具程序的目录。
设置path变量后,需要重新打开命令符模式才能使设置生效,此时再执行javac命令将获得成功,显示javac的使用方法列表。这也就是当我们在命令窗口输入javac命令时,操作系统会尝试在指定的path变量中寻找指定的工具,由于我们在path设置了jdk的bin目录的路径,因此操作系统才能根据这个信息找到javac.exe。
2、CLASSPATH环境变量的作用
java执行环境本身就是一个平台,用于运行已编译完成的java程序(即class字节码文件)。如果设置path变量是为了让操作系统找到指定的工具程序,那么设置classpath变量的目的就是让java指定环境找到指定的java程序对应的class文件以及程序中引用的其他class文件。
JDk在默认情况下会到当前工作目录下(变量值用“.”表示)以及jdk的lib目录下寻找所需的class文件,因此如果java程序放在这两个目录下,即使不设置classpath变量执行环境也可以。但是如果java程序放在其他目录下,运行时则需要设置classpath变量。设置时要特别注意“.”,他是表示当前路劲,不然可能会出现javac编译正常但执行java命令时报错。
总之设置classpath的目的在于通知java执行环境在那些目录下可以找到所要执行的java程序。

评分

参与人数 1技术分 +1 收起 理由
ily521125 + 1

查看全部评分

回复 使用道具 举报
s476596497 来自手机 中级黑马 2014-1-10 16:44:59
10#
PATH是方便虚拟机在任何目录下都能调用java开发工具,classPATH作用是虚拟机自动运行classpath目录下的类文件
回复 使用道具 举报
您看下,我还是简单明了的和你说:
1. PATH,CLASSPATH的区别

path是环境变量, 一般是配置java bin目录里面的执行程序的,如果你要正常使用java的话是必须的 这部分在毕老师java的基础里面前3节课说的很清楚 您应该看一下

简单点说 PATH:用于列出可执行文件的搜索路径.因为通过要通过命令行的命令启动JAVA,JAVAC等编译工具和解释工具,系统必须要知道他们所在的位置,PATH就是用来指明他们的位置的.

CLASSPATH该变量是JAVA加载类(class or lib)的路径.只有在classpath设置的路径中的类才能被加载.

还有你要注意 set classpath 和set path 这两个临时变量也是经常用的你需要注意下 很简单 好好看看视频 兄弟 如果还有不懂的话 再接着问

评分

参与人数 1技术分 +1 收起 理由
ily521125 + 1 赞一个!

查看全部评分

回复 使用道具 举报
疯狂的土贼 发表于 2014-1-10 17:14
您看下,我还是简单明了的和你说:
1. PATH,CLASSPATH的区别

我知道了,谢了。
回复 使用道具 举报
为什么我的电脑只配置了path,程序照样能运行???我的jdk安装路径D:\Program Files\Java\jdk1.6.0_07,我所写的程序在D:\DOS_JAVA,跟这有关系???
回复 使用道具 举报
黑马IT学员 发表于 2014-1-10 10:37
1、PATH环境变量的作用
在安装jdk程序后,在安装目录下的bin目录中会提供一些开发java程序时必备的工具程序 ...

想问一下什么叫当前目录??jdk在默认情况下会到当前工作目录下(变量值用“.”)表示      这一句话
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马