下面是网上的解决方法,我已经照着做了,可是还是有几个文件编译出错,请大家看看是什么问题。把com文件放到了附件中。
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\”。
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\”。
楼主【lgbupt】截止到2008-07-24 14:54:17的历史汇总数据(不包括此帖):
发帖的总数量:6 发帖的总分数:30 每贴平均分数:5
回帖的总数量:5 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:6 结贴的总分数:30
无满意结贴数:3 无满意结贴分:45
未结的帖子数:0 未结的总分数:0
结贴的百分比:100.00% 结分的百分比:100.00%
无满意结贴率:50.00 % 无满意结分率:150.00%
敬礼!
回到D:\java\目录下:
D:\java\>javac -d . com/bruceeckel/simpletest/SimpleTestException.java
D:\java\>javac -d . com/bruceeckel/simpletest/NumOfLinesException.java 第二种:
进入D:\java\com\bruceeckel\simpletest 目录 D:\java\com\bruceeckel\simpletest> javac -d . SimpleTestException.java
D:\java\com\bruceeckel\simpletest> javac -d . NumOfLinesException.java 两种方式有什么区别,试试就知道