我正在尝试深入了解 Java 编译。因此,我放下我的集成开发环境并开始使用 MS-DOS 命令行……
我创建了一个简单的项目,如下所示:
SampleApp
|____**src**
|_____pack
|______Sample.java
|____**classes**
这是Sample.java的源代码:
public class Sample
{
private String s = new String("Hello, world");
public Sample(){
System.out.println(s);
}
}
我只想编译这个类,所以我使用了javac命令:
prompt\SampleApp\src>javac -d ..\classes -sourcepath . pack\Sample.java
所有都运作良好,但我没有预料到这一点,因为在编译
Sample.java
文件之前,我删除了我的CLASSPATH
环境变量。所以我期望会有编译错误,因为编译器无法找到java.lang.String
类文件。我阅读了这篇文章http://www.ibm.com/developerworks/java/library/j-classpath-windows/ ,它帮助我理解了很多事情。文章作者说默认的classpath是当前工作目录,但我不明白为什么我的源代码能够编译通过而没有错误。请问有人能解释一下吗?