黑马程序员技术交流社区

标题: classpath 使用问题 [打印本页]

作者: 李大伟    时间: 2011-11-20 21:26
标题: classpath 使用问题
本帖最后由 李大伟 于 2011-11-21 17:01 编辑

    我设置classpath=E:\java\day01 为什么我在命令提示行  c:\users\lidawei> 运行javac VarDemo.java  提示jvavc 找不到文件 VarDemo.java 呢
而必须切换到  E:\java\day01 目录下才能找到呢

作者: 肖岑锋    时间: 2011-11-20 21:56
你弄错了,Javac编译命令时是系统根据Path环境变量进行查找命令的。Java运行命令行才是Java虚拟机根据ClassPath环境变量查找保存的类所在的目录。你应该把先在E:\java\day01下javac VarDemo.java编译,然后可以在其它目录比如:c:\users\lidawei>进行Java VarDemo就对了。
作者: xiwangliujiao    时间: 2011-11-20 23:32
javac是通过设置path来应用的,而java是通过设置classpath来应用的,而且,在编译时往往先从当前目录开始查找,找不到再从path设置的对应目录中查找,运行时不从当前目录查找,直接从classpath设置的目录对应查找,希望对你有帮助,
作者: 赵超    时间: 2011-11-21 00:15
javac是找的是从path设置的路径开始查找,如果没有再转到当前目录进行查找。classpath不是为javac提供类查询路径的,它是运行java命令时查找.class文件时的查询路径。比如你在当前目录下进行编译,你把.class文件拷到d:\下面,你把classpath设置在d:\目录下,进入d:\目录也能运行。如果你拷贝另一份.class文件,文件名相同,那么运行的结果就不相同了。
作者: 李晓斌    时间: 2011-11-21 01:12
楼上几位已经说的很详细了,设置classpath的目的是让java虚拟机找到所需要的类库,即虚拟机先去classpath路径下去寻找有没有所需要的class文件,所以你在E:\java\day01 目录下运行,即"javac VarDemo.java",然后再"java VarDemo",这样就没问题了。另外,关于classpath路径的配置问题,最好把当前目录放在配置的最前面,只要加上",;"就行了,这样运行起来会比较方便
作者: 804404980    时间: 2011-11-21 05:42
你可以在环境变量里新建个  E:\java   然后再path里面 在设置 %新建名%\day01  , %新建名%\day02
  或者直接在path 里面设置 E:\java\day01 然后你新建了day02  03 04 的时候再在path里面加入E:\java\day02 。  其实 这个你可以不用设置的 每次手动进入  E:\java\day01  里面好了,  只要设置bin  目录就行了。 classpath  到别人的电脑里设置临时的变量 差不多用到
作者: 李大伟    时间: 2011-11-21 17:01
感谢楼上各位,




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