本地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\这个目录