关于java编程思想第三版中的c03例子编译问题

关于java编程思想第三版中的例子编译问题

c03中的,代码如下:

[code="java"]
//: com:bruceeckel:simpletest:NumOfLinesException.java
// From 'Thinking in Java, 3rd ed.' (c) Bruce Eckel 2002
// www.BruceEckel.com. See copyright notice in CopyRight.txt.
package com.bruceeckel.simpletest;

public class NumOfLinesException extends SimpleTestException {
public NumOfLinesException(int exp, int out) {
super("Number of lines of output and "
+ "expected output did not match.
" +
"expected: <" + exp + ">
" +
"output: <" + out + "> lines)");
}
} ///:~
[/code]
同目录下已经有SimpleTestException.java和SimpleTestException.class,
可编译还是报错 。

报错信息如下 :

E:work_alljavajava_sam3rdcomruceeckelsimpletest>javac NumOfLinesException.java
NumOfLinesException.java:7: cannot find symbol
symbol: class SimpleTestException
extends SimpleTestException {
^
1 error

有人遇到过这样的情况吗 ?

SimpleTestException.class 应该放在 你当前编译的那个目录 的 \com\bruceeckel\simpletest目录下.

也就是:
E:work_alljavajava_sam3rdcomruceeckelsimpletest\com\bruceeckel\simpletest\SimpleTestException.class

NumOfLinesException.java可以放在当前目录上,也就是:
E:work_alljavajava_sam3rdcomruceeckelsimpletest\NumOfLinesException.java

上面的是针对这一的目录结构:
E:\work_alljavajava_sam3rd\com\bruceeckel\simpletest
|-SimpleTestException.class

E:\work_alljavajava_sam3rd
|-NumOfLinesException.java

你的目录结构应该是这样的:
E:\work_alljavajava_sam3rd\com\bruceeckel\simpletest
|-SimpleTestException.class
|-NumOfLinesException.java

那你的cmd的路径应该是:
E:\work_alljavajava_sam3rd

命令是:
javac E:\work_alljavajava_sam3rd\com\bruceeckel\simpletest\NumOfLinesException.java

你会发现在 E:\work_alljavajava_sam3rd\com\bruceeckel\simpletest下生成了NumOfLinesException.class