黑马程序员技术交流社区

标题: 关于class与classpath [打印本页]

作者: 你懂得    时间: 2013-8-18 16:15
标题: 关于class与classpath
本帖最后由 forward 于 2013-8-19 22:35 编辑

怎样设置path?为什么要设置path?还有就是path与classpath的区别。求大神请教?
作者: 静以修身    时间: 2013-8-18 16:26
path的配置::JAVA_HOME=%安装路径%\Java\jdk
                          path=%JAVA_HOME%\bin

classpath的配置:classpath=.;c:\;e:\
        即在最前面叫.;就行了,系统会在当前目录下找。
不过要注意:
        如果classpath的值结尾处有分号,在具体路径中没有找到运行的类,会默认在当前目录再找一次。
        2):如果classpath的值结果出没有分号,在具体的路径中没有找到运行的类,不会再当前目录找。
        一般不指定分号,如果没有在指定目录下找到要运行的类文件,就报错,这样可以调试程序。

javac:负责的是编译的部分
java:负责运行的部分

希望对你有帮助
作者: 苏联兵    时间: 2013-8-18 16:29
path 路径,是java编译时需要调用的程序(如java,javac等)所在的地方
classpath 类的路径,在编译运行java程序时,如果有调用到其他类的时候,在classpath中寻找需要的类。
你可以正常运行Java应用程序,而不必设置PATH变量。也可以为了方便起见,选择性地设置它。

如果你希望从任何目录都能方便地运行可执行文件(javac.exe、java.exe、javadoc. exe等),而不必输入命令的完整路径,那么可以设置PATH变量。如果没有设置PATH变量,那么每次运行可执行文件时都需要指定它的完整路径,比如:

C:\Program Files\Java\jdk1.6.0\bin\javac MyClass.java

永久地设置PATH很有帮助,这使它在重新启动之后保持不变。为了永久地设置,需要把jdk1.6.0的bin目录的完整路径添加到PATH变量中。按照下面的说明设置PATH。

path是os用
classpath java用

path里面不光有Java的bin,还可以包含许多其他的,tc啊,masm阿,只要在path中设了这些环境的路径,你在dos下的任何路径上都可以调用这些路径下的。

classpath是java专用的查找类的路径

系统变量是环境变量的一种,环境变量一种仅本用户适用,另一种即系统变量整个系统的用户都适用,两者都可以在使用应用程序时提供快捷.一般在编辑java文件或者C#文件时需要修改,设计到多个文件夹之间的切换时也可以根据自己的需要设置.
简单的说就是,如果设置系统变量和用户变量,都叫做设置环境变量,设置系统变量时,该系统的所有帐号的用户都可以使用,但是设置用户变量时,其他的帐号登陆时就不一定可以使用。
下面以java环境变量为例设置方法:
1、如果是Win95/98,在\autoexec.bat的最后面添加如下3行语句:
JAVA_HOME=c:\j2sdk1.4.1
PATH=%JAVA_HOME%\bin;%PATH%
CLASSPATH=.;%JAVA_HOME%\lib
看好了CLASSPATH中第一个".",这个代表当前目录,很多人HelloWorld没有运行起来大多是这个原因。

2、如果是Win2000或者XP,使用鼠标右击"我的电脑"->属性->高级->环境变量
系统变量->新建->变量名:JAVA_HOME 变量值:c:\j2sdk1.4.1
系统变量->新建->变量名:CLASSPATH 变量值:.;%JAVA_HOME%\lib
系统变量->编辑->变量名:Path 在变量值的最前面加上:%JAVA_HOME%\bin;
CLASSPATH前面的那个"."和上面的意义是一样的。



作者: 你懂得    时间: 2013-8-18 17:02
谢谢,我知道了
作者: 许云龙    时间: 2013-8-18 17:41
简单说
path是JRE运行环境变量
classPath是类运行环境变量
既然如何配置你都知道了,我也就不废话了
希望我的回答能让你快速理解

作者: 乖睡觉咯    时间: 2013-8-19 12:51
配置 path:
                        **我的电脑--右键属性--高级--环境变量--系统变量
                *操作
                        **新建一个环境变量,格式如下
                                ***变量名 JAVA_HOME
                                ***变量值 JDK的安装目录。(例如: D:\Java\jdk1.6.0_30)
                        **编辑Path
                                ***变量名 Path
                                ***变量值 %JAVA_HOME%\bin;本身的环境变量值

为什么配置path:
          windows能够自动根据path去找你在控制台中输入的命令。

classpath和path的区别
           path和classpath的区别
                *path变量是windows程序文件的目录 (exe,bat。)
                *classpath变量值是java类文件的目录 (class结尾)

作者: 黑马-文鸿利    时间: 2013-8-19 13:19
为何配置path:
在cmd命令中输入一个指令时先在当前文件目录下查找命令文件,path的环境变量中依次查找命令文件,以最先找到的为准,因为配置了path,所以在cmd命令下可以直接输入java和javac等jdk的命令

为何配置classpath:
jvm在查找class文件时如果没有设置classpath会在当前路径查找,设置classpth后 仅在classpath路径下查找class文件

作者: 杨增坤    时间: 2013-8-19 22:34
你懂得 发表于 2013-8-18 17:02
谢谢,我知道了

请把问题的未解决更改为已解决

作者: 何清林    时间: 2014-2-22 13:11
       我告诉你为什么要设置classpath你就知道意义了。
首先,在dos窗口下输入命令,dos就会根据输入的命令查找相关的可执行文件,(可以说每个命令都对应着1个可执行文件)dos在执行你输入的命令的时候就是在执行命令对应的可执行文件。
那么dos就需要找到相关的可执行文件,那么去那里找呢?dos就会根据系统变量path的值,path的值就是路径,然后根据路径一个个去找,找到了就执行。
      另外,如果你了解过类加载的话,就可以知道,正因为我们制定了classpath,我们自己写的java类才能被正常的编译执行,因为我们的java类正式有了classPath,才会被AppClassLoader类加载器加载到内存中,正常的变异执行
。如果没有定义环境变量classpath,java启动jvm后,会在当前目录下查找要运行的类文件;
如果指定了classpath,那么会在指定的目录下查找要运行的类文件。
        1):如果classpath的值结尾处有分号,在具体路径中没有找到运行的类,会默认在当前目录再找一次。
        2):如果classpath的值结果出没有分号,在具体的路径中没有找到运行的类,不会再当前目录找。
        一般不指定分号,如果没有在指定目录下找到要运行的类文件,就报错,这样可以调试程序。

classpath这个变量是给java用的道理和上面那个path变量一样。在执行Java程序时Java需要知道你的类文件在那里,我们就通过设置classpath变量的值告诉它路径。




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