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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李大伟 高级黑马   /  2011-11-20 21:26  /  3245 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 李大伟 于 2011-11-21 17:01 编辑

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

6 个回复

倒序浏览
你弄错了,Javac编译命令时是系统根据Path环境变量进行查找命令的。Java运行命令行才是Java虚拟机根据ClassPath环境变量查找保存的类所在的目录。你应该把先在E:\java\day01下javac VarDemo.java编译,然后可以在其它目录比如:c:\users\lidawei>进行Java VarDemo就对了。

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1

查看全部评分

回复 使用道具 举报
javac是通过设置path来应用的,而java是通过设置classpath来应用的,而且,在编译时往往先从当前目录开始查找,找不到再从path设置的对应目录中查找,运行时不从当前目录查找,直接从classpath设置的目录对应查找,希望对你有帮助,

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1

查看全部评分

回复 使用道具 举报
赵超 黑马帝 2011-11-21 00:15:52
板凳
javac是找的是从path设置的路径开始查找,如果没有再转到当前目录进行查找。classpath不是为javac提供类查询路径的,它是运行java命令时查找.class文件时的查询路径。比如你在当前目录下进行编译,你把.class文件拷到d:\下面,你把classpath设置在d:\目录下,进入d:\目录也能运行。如果你拷贝另一份.class文件,文件名相同,那么运行的结果就不相同了。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
楼上几位已经说的很详细了,设置classpath的目的是让java虚拟机找到所需要的类库,即虚拟机先去classpath路径下去寻找有没有所需要的class文件,所以你在E:\java\day01 目录下运行,即"javac VarDemo.java",然后再"java VarDemo",这样就没问题了。另外,关于classpath路径的配置问题,最好把当前目录放在配置的最前面,只要加上",;"就行了,这样运行起来会比较方便

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
你可以在环境变量里新建个  E:\java   然后再path里面 在设置 %新建名%\day01  , %新建名%\day02
  或者直接在path 里面设置 E:\java\day01 然后你新建了day02  03 04 的时候再在path里面加入E:\java\day02 。  其实 这个你可以不用设置的 每次手动进入  E:\java\day01  里面好了,  只要设置bin  目录就行了。 classpath  到别人的电脑里设置临时的变量 差不多用到

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
感谢楼上各位,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马