日期:2014-05-20  浏览次数:20749 次

CLASSPATH javac编译问题!
本地class目录为:D:\JavaWorkSpace
path:Path=C:\j2sdk1.4.2_11\bin;***
CLASSPATH=.;D:\JavaWorkSpace
Hello.java代码:

package   MyClass.sample;

public   class   Hello   {
public   static   void   main(String[]   args)   {
System.out.println( "Hello,   world ");
}
}

cd   D:\JavaWorkSpace
javac   -d   .   Hello.java  
编译通过,并在D:\JavaWorkSpace下生成文件夹MyClass\sample其中包含编译生成的Hello.class
java   sample.Hello
成功显示Hello,   world

在class的当前目录下进行的,javac,java都没有问题.
可是,转到C的根目录下
c:
javac   -d   .   Hello.java
报错:error:   cannot   read:   Hello.java
1   error
java   sample.Hello
成功显示Hello,   world

这是为什么?   如果java能正常运行的话,说明CLASSPATH设置没有问题,可是javac为什么别又识别不出来呢?

疑惑啊!!!

------解决方案--------------------
classpath设置了是给java用的,不是给javac用的
C:
javac -d . Hello.java 这个出错,是因为在c盘根目录下找不到Hello.java文件
javac -d . D:\JavaWorkSpace\Hello.java 成功是因为你指出了绝对路径,但类文件肯定会在当前目录下生成,也就是c盘下,你的C盘下应该有一个MyClass\sample\这个目录