黑马程序员技术交流社区

标题: Java中怎么设置临时classpath [打印本页]

作者: 何清林    时间: 2014-2-20 17:23
标题: Java中怎么设置临时classpath
        Java中怎么设置临时classpath,我想明白临时设置的意义所在。谢谢

作者: ___________゛M    时间: 2014-2-20 17:28
我不知道你那个临时是什么意思 , 其中CLASSPATH在两个地方设置: 如图,在上半部分设置时表示,你所登录的用户有效,而不影响其他的用户 。也就是说其他用户登录时是没有你设置的这个CLASSPATH变量的。如果在下半部分则是所有用户都会有这个变量。

111.jpg (83.95 KB, 下载次数: 57)

111.jpg

作者: dfasgfe    时间: 2014-2-20 17:36
变量名classpath
变量值;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;
作者: 疲劳的小马    时间: 2014-2-20 17:54
额。。这个怎么说呢。。set classpath就是在dos窗口进行临时环境变量设置的命令。意义么?这个。。说简单点就是告诉Java虚拟机jvm要运行的类文件存在何处。这么宽泛的和你说,估计你也是似懂非懂,好吧,我就多打点字(今天貌似回帖都打很多字的说-_-!):
举个最简单的例子,假设你现在代码的源文件Demo.java在你电脑里的D盘根目录下,那么你编译运行肯定在dos里这么输入命令:C:\Documents and Settings\Administrator>d:,然后切换到D盘输入D:\>javac Demo.java然后运行D:\>java Demo是吧,好,假设你Dos命令行现在在E盘,你也想运行程序,怎么办呢?当然你可以切换到D盘像刚才那样运行,也可以在命令行里输入:E:\> set classpath=d:\这样就设置好了类文件的临时环境变量,即告诉了jvm要运行的类文件在何处,然后就可以输入E:\>java Demo运行成功。
楼主,你发现临时环境变量设置的好处没?好处显而易见,就是将java的源文件和运行class文件进行分离!当然临时环境变量只在当前dos窗口有效。如果你想了解更详细的,看毕老师的视屏,自己来回多打几遍代码熟悉下就行了
作者: .......    时间: 2014-2-20 18:06
临时设置的意义? 那就是如果在不是自己的电脑上进行开发到不希望改变电脑的配置时 就用临时的设置
作者: jkenny    时间: 2014-2-20 19:17
我告诉你为什么要设置classpath你就知道意义了。
首先,在dos窗口下输入命令,dos就会根据输入的命令查找相关的可执行文件,(可以说每个命令都对应着1个可执行文件)dos在执行你输入的命令的时候就是在执行命令对应的可执行文件。
那么dos就需要找到相关的可执行文件,那么去那里找呢?dos就会根据系统变量path的值,path的值就是路径,然后根据路径一个个去找,找到了就执行。

classpath这个变量是给java用的道理和上面那个path变量一样。在执行Java程序时Java需要知道你的类文件在那里,我们就通过设置classpath变量的值告诉它路径。
作者: 山治0712    时间: 2014-2-20 20:08
在dos窗口中设置的classpath就是临时的
作者: 迦罗叶    时间: 2014-2-20 20:34
在dos命令窗口 输入 set classpath =  
楼主,提醒一下上面等于号后面就是你要设置的路径,里面有个小知识点如果set classpath = d:  注意设置的D盘后面我没有加分号(;),那么JVM只在classpath设置的路径,如上例中的D盘寻找。如果我加了分号
set classpath = d:; 那么JVM先在classpath中寻找,如果找不到就再到自己.class文件的路径寻找。建议后面不加分号。用完后关闭DOS窗口,一切都还原了
作者: 茗记    时间: 2014-2-22 00:58
classpath:如果你了解过类加载的话,就可以知道,正因为我们制定了classpath,我们自己写的java类才能被正常的编译执行,因为我们的java类正式有了classPath,才会被AppClassLoader类加载器加载到内存中,正常的变异执行
。如果没有定义环境变量classpath,java启动jvm后,会在当前目录下查找要运行的类文件;
如果指定了classpath,那么会在指定的目录下查找要运行的类文件。
        1):如果classpath的值结尾处有分号,在具体路径中没有找到运行的类,会默认在当前目录再找一次。
        2):如果classpath的值结果出没有分号,在具体的路径中没有找到运行的类,不会再当前目录找。
        一般不指定分号,如果没有在指定目录下找到要运行的类文件,就报错,这样可以调试程序。

作者: xiaochen33520    时间: 2014-2-22 10:52
在cmd控制台设置。set classpath="路径"

作者: 何清林    时间: 2014-2-22 13:03
疲劳的小马 发表于 2014-2-20 17:54
额。。这个怎么说呢。。set classpath就是在dos窗口进行临时环境变量设置的命令。意义么?这个。。说简单点 ...

很好,谢谢兄弟!
作者: 何清林    时间: 2014-2-22 13:08
谢谢你们的回答,我想我还是再去看看那个视频,有点模糊
作者: 严旭晟    时间: 2014-2-23 00:07
毕老师的视频里讲到了,我觉得还是要先搞懂path,然后对比path和classpath的异同
主要从:他们的功能作用、JVM的执行流、服务对象以及分号的用法,相信你从这些方面入手再总结视频应该很有好处
楼上几位讲得很好。dos命令中本身有path命令,一般在控制台里面所设置的都是临时性的(即关掉控制台后,所设的值被清空),要注意一个问题,对于控制台创建的子窗口仍然有效
作者: °つ_旭_丶    时间: 2014-2-23 13:07
以下是我的,供你参考  我的电脑(计算机)-右击属性-高级-环境变量-系统变量-新建JAVA_HOME,classpath,path  变量名  JAVA_HOME  变量值  D:\Program Files\Java\jdk1.6.0_10  变量名  classpath  变量值  ;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;   变量名  path  变量值  %JAVA_HOME%\bin;




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