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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 黑马-王鹏 于 2013-3-6 23:57 编辑

前几天看了环境配置,看视频里的毕老师讲的很详细,但把我总觉的很模糊,求高手指教,怎么理解path与classpath之间的区别,才会理解清楚明了

11 个回复

倒序浏览
path:
在编译Java程序和运行时,需要运行一些JDK安装目录下的bin目录中的的.exe文件(javac.exe和java.exe)如果没有配置path环境变的话,在运行编译运行java程序时需要在DOS窗口下先切换到JDK目录下的bin目录下才能使用编译工具(javac.exe)编译java文件,每次这样操作的话很麻烦。这时配置path环境变量把bin目录下的工具告诉系统,在运行编译工具和运行java程序的时候,系统自动回寻找编译工具;
classpath:
  设置临时环境变量,临时环境变量只在当前DOS窗口下有效。
  比如在使用别人的电脑开发软件或者是运行测试已开发好的软件时,别人不会让你           修改人家电脑上的东西的话,我们就需要进行配置临时环境变量clsaapath,来运行        我们自己编写的程序(主要指类文件.class文件)使用;
回复 使用道具 举报
path:
     如果想在任意目录下运行一个程序,我们就需要将程序所在的路径配置在path环境变量中。通常我们会将javac.exe所在目录配置到path中,因为我们需要在任意目录下都能编译Java源文件。配置完成之后可以在命令行输入javac测试,如果显式帮助信息则是配置成功。
classpath:
       当编写好一个Java程序,编译生成*.class的Java可执行文件后,如果没有classpath变量,则必须进入这个Java可执行文件的目录,JVM才可以执行。如果配置了classpath变量则可以在任意目录下都可以执行某一目录下的class文件。
回复 使用道具 举报
怎么比我还快啊?
回复 使用道具 举报
何仕映 发表于 2013-3-6 14:06
path:
     如果想在任意目录下运行一个程序,我们就需要将程序所在的路径配置在path环境变量中。通常我们 ...

那么jvm在寻址上有什么区别?
回复 使用道具 举报
path环境变量不是虚拟机调用的,是windows系统对应用程序的调用的路径。他们在寻址上,windows系统是先从当前路径中去找,找不到再找环境变量path里的路径,而classpath相反。
回复 使用道具 举报
李永科 发表于 2013-3-6 14:05
path:
在编译Java程序和运行时,需要运行一些JDK安装目录下的bin目录中的的.exe文件(javac.exe和java.exe ...

配置环境变量之后可以查看编译器(javac.exe)和虚拟机(java.exe)版本,虚拟机版本不能低于编译器。
请问怎么修改版本过低?
回复 使用道具 举报
classpath是JVM执行JAVA的可运行文件(*.class)的路径。
回复 使用道具 举报
谢谢各位!
回复 使用道具 举报
回复楼主:这个问题其实和java本身是没有关系的。
定义path的目的是为了让javac可以在任何目录下都可以运行,而定义classpath是为了让你在运行自己编译的文件时可以在任何情况下都能运行的目的。宗旨都是为了方便。
如果不定义javac也是可以运行的。做法就是:去javac所在的java目录中,并将你要编译的.java文件也放倒javac的目录下就可以运行了。classpath也是同样的道理。这么说能明白了么?

回复 使用道具 举报
设置path路径后,javac.exe文件在任何目录下都可以运行;设置calsspath路径后,javac.exe和java.exe就可以在classpath路径下运行,不必再到java\bin\目录下运行了。
回复 使用道具 举报

path: 用 来指定 java 虚拟机(JVM) 所在在目录,也就是我们最常用的用来编译java源程序的javac.exe 和用来执行 *.class 文件的 java.exe 这两个命令。以我的机器为例吧:我的 jdk 按装目录为 D:/jdk1.5.0_08(确切的说我的这个JDK不是安装版本的,直接解压到 d:/ 下的 ,此时我的 path 就要这样设 path=D:/jdk/bin;),设置好了后就可以在命令行中输入 javac , 与 java 命令了,如果这时能打印出命令的 help 文档就说明 path 设置正确了。

classpath:用 来指定我们自己所写的或要用到的类文件(.jar文件) 所在的目录,这里有一个小情况:比如我的classpath一开始没有设定,而我的java类文件所在的目录为: d:/javalesson/lesson1  这个文件夹中,此时我把我的命令行窗口所在的目录设置为 d:/javalesson/lesson1(也就是我的类文件所存放的目录) ,这时如果运行某个 .class 文件是一定能找到的。这时我开始设置 classpath 这个目录,比如我设置为 classpath=c:/abc 这个目录,这时我的命令行窗口所在的目录没修改仍然为: d:/javalesson/lesson1 (也就是我的类文件所存放的目录,没有改变) , 再运行 java 时就会发生 找不到某某类这样的错误,这是因为你只要设置了 classpath 这个环境变量系统就不会再在当前目录下查询某个类了,所以会发生某某类找不到这样的错误,如果你要既要让系统在 classpath所指定的目录中去找某个类,又要让系统在当前目录下查询某个类,这时你只要让你的 classpath 中多一个 “.” 就可以了,例如:classpath=c:/abc;. 这时你的目录即使在 d:/javalesson/lesson1 ,也会找到类文件的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马