com.bruceeckel.simpletest 不是JDK自带的,而是《Thinking in Java》作者自己编写的,所以需要先在网上下一个。
com.bruceeckel.simpletest 包含在Thinking in Java》所提供的源代码里,根据书上提供的网址,下载文件TIJ-3rd-edition-code.zip后解压缩(文件夹里的文件全市没有进过编译的*.java文件,需要先把它们编译)。编译时可能会出现“OutputVerifier.java:45”的错误,这时因为Test.java和OutputVerifier.java. 类Test和类OutputVerifier互相引用了 ,修改下OutputVerifier.java就可以了。 把
public static void
verifyIgnoreOrder(List output, Object[] expected) {
verifyLength(expected.length,output.size(),Test.EXACT);
if(!(expected instanceof String[]))
throw new RuntimeException(
"IGNORE_ORDER only works with String objects");
String[] out = new String[output.size()];
Iterator it = output.iterator();
for(int i = 0; i < out.length; i++)
out[i] = it.next().toString();
Arrays.sort(out);
Arrays.sort(expected);
int i =0;
if(!Arrays.equals(expected, out)) {
while(expected[i].equals(out[i])) {i++;}
throw new SimpleTestException(
((String) out[i]).compareTo(expected[i]) < 0
? "output: <" + out[i] + ">"
: "expected: <" + expected[i] + ">");
}
}
改成(out[i]).compareTo((String)expected[i]) < 0就可以编译通过了。
把TIJ-3rd-edition-code/com文件夹里所有文件编译下后拷贝到Java编译环境下。比如我的Java安装在D:/Program Files/Java下,就把com文件夹拷贝到D:/Program Files/Java下面,然后修改classpath。在控制面板=〉系统=〉高级=〉环境变量里,新建系统变量,变量名classpath,变量值“D:/Program Files/Java/”。