黑马程序员技术交流社区

标题: 想问下path 和 classpath 有什么区别?有点不明白? [打印本页]

作者: 黑马—王宁    时间: 2012-4-16 15:41
标题: 想问下path 和 classpath 有什么区别?有点不明白?
想问下path 和 classpath 有什么区别?有点不明白?请高手指点下,越详细越好,谢谢!
作者: 刘占月    时间: 2012-4-16 15:53
path:用于列出可执行文件的搜索路径.因为通过要通过命令行的命令启动java,
      javac等编译工具和解释工具,系统必须要知道他们所在的位置,path就是用来指明他们的位置的.
classpath变量是java加载类的路径.只有在classpath设置的路径中的类才能被加载运行。
作者: 岳民喜    时间: 2012-4-16 16:15
path 是系统的环境变量
也就是配置jdk的时候用的Javac javadoc 等编译程序的位置,方便JDK找到你调用的应用程序
配置的是包或者二进制文件夹的路径。

classpath 是你的文件路径,既你的项目编译后的.class文件所指的地方.
作者: τ、高童鞋ゝ    时间: 2012-4-16 16:24
Windows中需要设置两个环境变量path和classpath。path变量指出java提供的可执行文件的路径,目录加载功能,classpath指出java包的路径,是类库或者类库目录加载。

配置:
xp中右击我的电脑,选属性,在属性中选择“高级”选项卡,点击环境变量按钮,系统弹出‘环境变量’对话框,path是windows已定义的变量,找到“path”,点击“编辑”按钮,将“;C:\Program Files\Java\jdk1.6.0\bin”加到“变量值”文本框中,然后单击“确定”按钮。向Path添加的是JDK编译器javac.exe和解释器java.exe的路径。如果windows没有Path变量,则需要新建。
windows中没有classpath环境变量,需要新建。单击新建按钮,变量名为classpath,变量值为“.;C:\Program Files\Java\jdk1.6.0\lib”,这是JDK包(类库)的路径。
注:1.必须加在“系统变量”列表框中,不能加在“用户变量”中!
    2.变量值引号中每个符号都要copy,不能落下"."号!
作者: 黑马罗坚    时间: 2012-4-16 17:08
环境变量是个具有特定名字的对象,它包含一个或多个程序需要使用的信息。如在命令提示符下执行文件时如果没有指定路径的话那么系统会按先后顺序的通过path变量所指定的以;号为分隔符的每条路径中去寻找所需要的文件 如果环境变量后面有分号的话接着搜索当前目录 直到搜到为止 所以环境变量中的位置先后和分号都很重要 直接影响到结果   环境变量的值是以下击中情况1.系统变量+用户变量 2.系统变量覆盖用户变量 3.用户变量覆盖系统变量 所有查看一个环境变量以set看到的为准

PATH:
提供给操作系统寻找到Java 命令工具的路径。通常是配置到JDK 安装路径\bin
JAVA_HOME:
提供给其它基于Java 的程序使用,让它们能够找到JDK 的位置。通常配置到JDK 安装
路径。注意:这个必须书写正确,全部大写,中间用下划线。
CLASSPATH:
提供程序在运行期寻找所需资源的路径,比如:类、文件、图片等等。
注意:在windows操作系统上,最好在 classpath的配置里面,始终在前面保持“.;”的配置,
在windows里面“.”表示当前路径。


作者: 党传才    时间: 2012-4-16 17:11
很简洁的告诉你:
path是系统的环境变量,也就是配置jdk的
classpath是你的文件路径,既你的项目编译后的.class文件所指的地方.
作者: 索学超    时间: 2012-4-16 17:22
path路径,是Java编译时需要调用的程序(如Java,javac等)所在的地方。         classpath 类的路径,在编译运行java程序时,如有调用到其他类的时候,在classpath中寻找需要的类。
作者: 伊文龙    时间: 2012-4-16 17:22
path:是指定的系统可执行程序的路径,通过此路径,可以在doc环境下直接执行该可执行程序.,这些可执行程序不只包含jdk的各种命令,其他的可执行程序也同样可以。
classpath:这个环境变量指定的是 java执行的时候所需要的jar包所在的路径。  如果需要扩展jar包的时候,可以直接把要扩展的jar包复制到classpath已经指定的环境变量中,也可以在classpath中把要扩展的jar包的路径添加进去。

作者: 伊文龙    时间: 2012-4-16 17:24
我把QQ的路径加到path路径后就可以这样执行了

未命名.jpg (55.86 KB, 下载次数: 52)

未命名.jpg

作者: 韩新凯    时间: 2012-4-17 22:18
PATH环境变量,目的是为了指向JDK的bin目录,这里面放的是各种编译执行命令。

假设设置是:

PATH=C:\j2sdk1.4.2_09\bin;C:\j2sdk1.4.2_09\jre\bin;

需要说明,系统中本身就有PATH环境变量,只要把C:\j2sdk1.4.2_09\bin;C:\j2sdk1.4.2_09\jre\bin;直接放到后面即可,中间有分号间隔。

如果你的JAVA_HOME是别的目录,就对照着该吧。

CLASSPATH最重要。

CLASSPATH=.;C:\j2sdk1.4.2_09\lib;C:\j2sdk1.4.2_09\lib\tools.jar;这时我的设置。这是类的路径。前面加上点和分号,意为首先在当前目录查找,以后你自己编写类的时候自然明白这点。

那么为什么要设置环境变量,以前编写c语言的时候怎么不设置呢?

由于WINDOWS默认的搜索顺序,先搜索当前目录的,再搜索系统目录的,再搜索PATH环境变量设定的。你在编写java程序时,在一个指定目录,这里没有编译执行命令,而系统目录里面,也没有编译执行命令。所以放在环境变量里面, 从这里你应该可以看出,环境变量是干什么用的了。简单说就是告诉操作系统到那里去找指定的文件。你要是把系统目录给改了,看你用dos命令还好不好使。

配置完后,在命令提示符下,键入java -version,如果出现java的一些信息,说明配置成功
作者: 张超超    时间: 2012-4-18 17:38
path是您用的操作系统提供的环境变量,
您一定试过在命令行输入一个命令然后它就执行了,很好玩吧。你输入的比如说是〉ffff,
可这个文件明明在D:/****/***/ffff.exe那个路径下,在命令行中,不管在那个路径下输入都能执行呢,
这就是因为,再path中设置了这个路径。
那classpath有什么作用呢?编java程序的时候都知道import的作用吧!
当要用的class,在某一个.jar下是,你需要在编译时引入,jvm自动去找classpath环境变量引入下面的jar包,
这就是classpath环境变量的作用


作者: 葛尧    时间: 2012-4-18 18:12
简单点说就是
path 是windows提供的环境变量
在命令提示符下
执行一个文件,如果当前目录下不存在,就会去搜索path设定的路径是否有该文件。   搜索是按配置的顺序的执行的。

classpath 则是java虚拟机提供的,类似path,不过是针对 .class 文件吧
作者: 文密    时间: 2012-4-18 18:17
path指示java命令的路径,像javac、java、javaw等classpath是javac编译器的一个环境变量,它的作用与import、package关键字有关,当你写下improt java.util.*时,编译器面对import关键字时,就知道你要引入java.util这个package中的类;但是编译器如何知道你把这个package放在哪里了呢?
所以你首先得告诉编译器这个package的所在位置;就是设置CLASSPATH:) 如果java.util这个package在c:\jdk\ 目录下,你得把c:\jdk\这个路径设置到CLASSPATH中去!
当编译器面对import java.util.*这个语句时,它先会查找CLASSPATH所指定的目录,并检视子目录java\util是否存在,
然后找出名称吻合的已编译文件(.class文件)。如果没有找到就会报错!
设置方法:右击我的电脑选属性-->选高级-->选环境变量-->点上面的新建-->变量名输path, 变量值输-->
你安装java的路径\bin-->点确定-->再点新建-->变量名输classpath, 变量值输-->
你安装java的路径\lib\tools.jar
你安装java的路径\jre\lib\rt.jar-->一直点确定-->
配置完成




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2