JAVAC 相同的命令在不同的路径下运行出现的情况不一样?

goldenlily2007 2009-10-05 09:12:24
设置了环境变量PATH,在任何路径下都可以用javac java命令,编写了Hello.java,放在 E:\javacode目录下,结果出现了这样的情况:
运行下面的命令:
javac -cp e:\javacode\ Hello.java

在E:可以,在C: D: 下运行均出现错误:
javac 找不到文件 Hello.java

这到底是什么原因呢?
谢谢!
...全文
206 16 打赏 收藏 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
goldenlily2007 2009-10-05
  • 打赏
  • 举报
回复
8楼朋友推存的非常有用,自己已经弄清楚了,十分感谢!
goldenlily2007 2009-10-05
  • 打赏
  • 举报
回复
谢谢11楼的朋友!
goldenlily2007 2009-10-05
  • 打赏
  • 举报
回复
在7楼朋友的帮助下,发现这样写就OK了
javac e:\javacode\Hello.java
为什么javac -cp e:\javacode\ Hello.java 就不行呢?
dajiadebeibei9 2009-10-05
  • 打赏
  • 举报
回复
这样应该没问题 把“E:\javacode”放在classpath里 编译好的.class文件应该在这个目录里卖弄
你在E盘或者别的盘 应该直接java 文件名
你当然不能再编译 再编译就需要当前文件夹下有源文件
不过可以直接再别的盘运行 程序直接运行的时候 程序会自动在classpath目录下搜索相应的字节码文件

刚才那个不对 应该是直接java 文件名
dajiadebeibei9 2009-10-05
  • 打赏
  • 举报
回复
第一行打错一个字 不好意思 是“目录里”
dajiadebeibei9 2009-10-05
  • 打赏
  • 举报
回复
这样应该没问题 把“E:\javacode”放在classpath里 编译好的.class文件应该在这个目录里卖弄
你在E盘或者别的盘 应该直接java 文件名.class
你当然不能再编译 再编译就需要当前文件夹下有源文件
不过可以直接再别的盘运行 程序直接运行的时候 程序会自动在classpath目录下搜索相应的字节码文件
zhaoqiang4153 2009-10-05
  • 打赏
  • 举报
回复
环境变量问题啊,,你要把你的.class所在地放到classpath
goldenlily2007 2009-10-05
  • 打赏
  • 举报
回复
我写的是全名啊!
zrcvic 2009-10-05
  • 打赏
  • 举报
回复
参见:http://topic.csdn.net/u/20091004/14/e9bb021b-98c0-48b4-8910-1ae6fb08e480.html
zrcvic 2009-10-05
  • 打赏
  • 举报
回复
不管 CLASSPATH 是什么,你的 javac 后的文件名都必须是全文件名,编译器才能找到这个文件。而对于这个文件中引用到的其他类,编译器才会到 CLASSPATH 所指的路径中去找。
若鱼1919 2009-10-05
  • 打赏
  • 举报
回复
javac -cp e:\javacode\ Hello.java

-cp e:\javacode\的意思是classpath是e:\javacode\,路径是e盘,需要换成c盘或者d盘的路径
goldenlily2007 2009-10-05
  • 打赏
  • 举报
回复
5楼朋友说的也是个办法,但是我那样写也应该没有问题啊,只是想弄明白,谢谢
littlemonster 2009-10-05
  • 打赏
  • 举报
回复
在你path设置正确的前提下:

你编译后的.class文件在哪里,就到哪里去运行噢。

[Quote=引用 4 楼 goldenlily2007 的回复:]
2楼的朋友,Hello.java 本来就是放在E:盘的呀!

3楼说的对,  Hello.java就是放在e:\Javacode 的,就是类所在的目录,那么按理说无论在C  还是在D 盘运行这个命令都应该没有问题的呀!但实际是在E下运行没问题。
[/Quote]
东北小妞 2009-10-05
  • 打赏
  • 举报
回复
-cp参数是运行*.jar文件的,和你的路径没有关系
goldenlily2007 2009-10-05
  • 打赏
  • 举报
回复

2楼的朋友,Hello.java 本来就是放在E:盘的呀!

3楼说的对, Hello.java就是放在e:\Javacode 的,就是类所在的目录,那么按理说无论在C 还是在D 盘运行这个命令都应该没有问题的呀!但实际是在E下运行没问题。
sforiz 2009-10-05
  • 打赏
  • 举报
回复
知道path和classpath的区别吗?
path指定编译工具等的路径,就是指定JDK中的BIN文件夹就是东东,classpath指定类所在的目录

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧