黑马程序员技术交流社区
标题: path和classpath的区别 [打印本页]
作者: hg3093483 时间: 2013-3-24 21:31
标题: path和classpath的区别
本帖最后由 hg3093483 于 2013-3-25 20:05 编辑
path和classpath的区别在哪里?
作者: IT菜鸟 时间: 2013-3-24 21:33
path 路径,是java编译时需要调用的程序(如java,javac等)所在的地方
classpath 类的路径,在编译运行java程序时,如果有调用到其他类的时候,在classpath中寻找需要的类。
作者: HM周一帆 时间: 2013-3-24 21:35
path环境变量里面记录的是可执行性文件,如.exe文件,对可执行文件先在当前路径去找,如果没找到就去path环境变量中配置的路径去找
classPath环境变量里记录的是java类的运行文件所在的目录
1没配置classPath路径,直接在当前路径找
2配置了classPath路径
在结尾处没有加分号,就会在你所配置的路径去找如果找不到就会报错
在结尾处加分号,就会现在你所配置的路径去找,如果找不到就会到当前路径去找,还是找不到就会报错
作者: 柳 德 彬 时间: 2013-3-24 21:38
你再看看老毕的第一天课吧!!!!
作者: 黄诗宾 时间: 2013-3-24 21:38
本帖最后由 黄诗宾 于 2013-3-24 21:41 编辑
1、PATH,这个是给WINDOWS操作系统用的,告诉命令行里,执行的命令行工具在那里,比如java,javac这都是命令行工具,你在运行里随便敲一个命令,操作系统怎么就知道你这个命令对应的程序在什么地方,就是通过PATH知道的,你编写JAVA程序的时候,需要编译你的代码,执行编译后的代码,用JAVA和JAVAC这2个工具,那么就必须告诉操作系统,这2个工具放在什么地方。
WINDOWS提供了一个PATH环境变量,他的作用就是现在这个变量的值路径中去找,如果找到了要运行的EXE就运行,否则失败。如果我们把JAVA里的bin目录这个路径赋给path那么下次我在运行java这个命令的时候,即便是直接输入DOS也能够在path变量中找到JAVA的bin目录下的java指令了。
2、CLASSPATH,是给JAVAC和JAVA用的,告诉他们,你写的JAVA类,是放在什么地方的。
——“假设我们要运行一个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的值路径下去找,找到就运行,找不到就失败。
作者: 疯狂程序 时间: 2013-3-24 21:38
1.5jdk,基本不用我们配置了,
如果没有配置classpath环境变量,JVM只在当前目录下查找要运行的类文件。
如果配置了classpath环境,JVM会先在classpath环境变量值的目录中查找要运行的类文件。
值的结尾处如果加上分号,那么JVM在classpath目录下没有找到要指定的类文件,会在当前目录下在查找一次。
值的结尾出如果没有分号,那么JVM在classpath目录下没有找到要指定的类文件,不会在当前目录下查找,即使当前目录下有,也不会运行。
建议:配置classpath环境变量时,值的结尾处不要加分号,如果需要访问当前目录可以用 “.”表示。
作者: MyNameIs520 时间: 2013-3-24 21:47
MARK ~~MARK ~~
作者: 张海洋 时间: 2013-3-24 22:04
path变量 它的作用是让系统可以找到可执行的程序。
那我们安装完成jdk后,需要让系统可以找到jdk目录下的bin目录下的xxx.exe文件
例如 javac.exe java.exe javadoc.exe等。需要在path下配置环境变量
classpath是用来指定.class文件的路径。
作者: 朱德帅 时间: 2013-3-24 22:49
path:是为了让系统可以找到javac.exe和java.exe文件,去编译和运行代码。
classpath:是为了让虚拟机知道去哪找class文件去编译运行。
总之,就是为了方便我们。不去配置也是可以运行的,只是会很麻烦。
作者: 钟佩桓 时间: 2013-3-25 11:09
我昨天晚上刚刚把java的基础部分总结了 对于你这个问题我昨天我也是反复看了下毕老师的视频把两者的区别和内容理解透,下面是我自己作的总结 希望对你有帮助 你也可以看下我的博客 后面还会继续总结看过的视频。http://blog.csdn.net/zps13659016577/article/details/8712904
3,配置环境变量
1,可以直接在path中的最开始处加上java工具所在目录,比如我的是:E:\jdk1.7.0_17\bin;根据每个人的JDK安装路径不同而搭配。注意末尾必须加分号,和后面的变量值区分。
2,可以新建系统变量,然后在对话框中输出变量名:JAVA_HOME 变量值:E:\jdk1.7.0_17 点击确定后再path的原变量值最前端加上:%JAVA_HOME%\bin;变量值 就可以了
。 这样的好处是:不因为jdk的目录或者目录名称的改变,而不断更改path的值,而导致对path变量值的误操作
注意:这里加变量值加在path的最前面的原因是:当我们执行某个命令的时候,操作系统会首先在path环境变量中的最开始处进行查找,方便我们更效率的进行java的运行于开发。
3,设置calsspath环境变量
如果没有配置classpath环境变量,JVM只在当前目录下查找要运行的类文件。如果配置了classpath环境,JVM会先在classpath环境变量值的目录中查找要运行的类文件。所以,如果配置了calsspath环境变量可以在任意目录下执行我们的calss文件。比如:在用户变量 新建calsspath 变量值为:.,c:\;d:\
两者的区别:
path是os用
classpath java用
path里面不光有Java的bin,还可以包含许多其他的,tc啊,masm阿,只要在path中设了这些环境的路径,你在dos下的任何路径上都可以调用这些路径下的命令。
classpath是java专用的查找类的路径
系统变量是环境变量的一种,环境变量一种仅本用户适用,另一种即系统变量整个系统的用户都适用,两者都可以在使用应用程序时提供快捷.一般在编辑java文件或者C#文件时需要修改,设计到多个文件夹之间的切换时也可以根据自己的需要设置.
简单的说就是,如果设置系统变量和用户变量,都叫做设置环境变量,设置系统变量时,该系统的所有帐号的用户都可以使用,但是设置用户变量时,其他的帐号登陆时就不一定可以使用。
作者: 小黑黑 时间: 2013-3-25 13:10
PATH和CLASSPTHA的作用
1、path作用:
简单的来书,path作用是指定系统执行java开发工具(如javac)的路径。
具体说,在执行javac等编译java程序时,系统会到path这个环境变量中去查找相对应的命令程序。我们之所以把jdk安装目录下的bin目标添加到path中,就是为了让系统去查找这个目录,因为这个目录下是java的开发工具,是执行java命令的可执行文件,如javac,java,javadoc等可执行文件。
2、classpath作用:
简单来说,classpath作用是指定类搜索路径。
具体说,配置classpath是为了让编译器寻找到class文件,其实就是为了让虚拟机能检索到class文件,而配置这个classpath的。当在classpath中配置为“.”(无引号)后,就会在当前路径下查找“class”文件。
希望对你有帮助
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |