一、获得源代码:
最近开始学习〈Java编程思想〉,到第三章的时候,碰到书上用到的第三方提供的源代码。按照书上的说法,到作者官网去下载,但是发现我的网络无法访问这个网站。千辛万苦在国内的网站找到了源代码。现在将源代码发布在了我的资源处,可以从这里得到:
http://download.youkuaiyun.com/detail/pdcxs007/6827401
二、获得ANT程序
另外,需要安装ant程序。ant可以在其官网免费获得:
http://ant.apache.org/bindownload.cgi
选择相应的压缩格式下载即可。也可以在我的资源处下载:
http://download.youkuaiyun.com/detail/pdcxs007/6827415
三、配置ANT程序
下载完成后,将ant解压到一个目录,如:D:\ant 。配置过程为:在环境变量中,添加:
1、新建变量ANT_HOME,设置其值为:D:\ant,即解压目录,注意没有分号。
2、在PATH中添加:%ANT_HOME%\bin,即解压目录下的bin文件夹。
验证:在命令行下输入:ant,如果显示如下,则配置成功:
四、编译源代码碰到的问题
因为是要用书目提供的第三方类,所以我只编译了com文件。用命令行进入com文件夹,输入ant,提示以下错误:
[CheckVersion] Exception in thread "main" java.lang.RuntimeException: JDK 1.4.1 or higher is required to run the examples in this book.
[CheckVersion]at com.bruceeckel.tools.CheckVersion.main(Unknown Source)
我用的是Java 1.7.0,应该是满足要求的,所以是编译文件的问题。
按照提示,找到com\bruceeckel\tools\CheckVersion.java
打开后,找到其检查版本的代码,发现有错误:
我的point为0,因此if条件符合了……所以将其改为:
if( minor < '4' || (minor == '4' && point < '1' ))
再次编译,发现版本没有问题,但是还有以下错误:
错误: 无法将类 String中的方法 compareTo应用到给定类型;
类型不匹配,因此需要一个类型转换,将com\bruceeckel\simpletest\outputVerifier.java中的第45行:
((String) out[i]).compareTo(expected[i]) < 0
改为:
((String) out[i]).compareTo((String)expected[i]) < 0
再次编译,虽然还有警告,但是终归是成功了。
将com文件夹复制到CLASSPATH的指定目录下面或者将com文件夹的目录添加到CLASSPATH系统变量中,就可以直接使用书目提供的类了!