本书针对两类不同的读者。我们意识到,本书可能会吸引不熟悉Linux而有Java经验的程序员,以及不熟悉Java而有Linux经验的程序员,或者二者之间的其他可能。 除了平衡这两个极端之外,我们还试图在书的篇幅以及话题的范围之间获取平衡。幸运的是,现在有许多关于Java和Linux的书籍以及网络资料,因此我们可以在篇幅有限的情况下尽力而为,我们将求助于许多外部参考资料,您可以用这些资料来补充本书的内容。 本书读者对象 如果您是一位有经验的Java程序员,但是不熟悉Linux,而且您已经花费了很长时间来寻找在Linux下开发并部署Java应用程序工具的信息,那么本书将为您提供大量有价值的信息。 如果您是一位经验丰富的Linux用户或者开发人员,并且有兴趣在这个平台上使用Java,本书将为您讨论一些Java开发的高级话题,并提供常见的Linux以及GNU工具的一些新颖用法。 如果您刚开始接触Linux以及Java,这本书仍然有价值,但是我们建议将其与更多的入门书一起使用。对于Java以及面向对象程序设计的介绍,我们推荐Bruce Eckel 的名著Thinking in Java(ISBN 0-13-100287-2)。对于介绍Linux及其工具的书,我们推荐David Elboth的The Linux Book(ISBN-0-13-032765-4) 。本书的“资源”部分列出了一些其他书籍。我们推荐的许多书籍并不局限于Linux。因为Linux与UNIX平台相似(在很大程度上),我们有时候也会推荐对所有的*nix系统都适用的书籍。 如果您是一位开发人员、承包人或者项目多出预算的MIS开发管理人员,本书将向您介绍许多可靠的工具,这些工具具有免费许可证,可以自由地使用它来开发并部署Java应用程序产品。我们总是被要求“多快好省”。在许多(当然不是所有)情况下,开放源代码的自由软件是做到这一点的优秀方法。 如何使用本书 使用一本书可以有多种方式。有些人喜欢从最后一章开始,来观察它最后的结论。另一些人喜欢从前面开始,在深入之前掌握所有的内容。一些人喜欢快速地通读,然后详细阅读,另一些人喜欢忽略一些内容,选择感兴趣的话题来阅读。无论您采用哪种方式,我们都希望本书对您有所帮助。 本书的每一章都不是真正独立的,也不是杂乱地与前面的章节联系在一起。如果我们就一个话题深入阐述,或许可以一章接一章地编写。但我们却将众多的内容浓缩在一起,给出一个好的总结,从而让您了解这些可能性,并鼓励您寻找更多的资料。一些章节与前面章节联系得非常紧密,其他一些章节不需要前面章节的知识就可以阅读—— 这取决于所讨论的话题。 阅读本书的方法 下面介绍一些阅读本书的方法,这取决于您的经验以及技巧、耐性以及持久性。我们试图将许多有价值的实用信息压缩在少数章节,对每个课题都提炼出最重要的话题。我们希望即使对于非常有经验的读者,也能提供一些新的内容,至少提供了一些新的解释,可以让您对熟悉的话题有新的认识。 Linux新手学习本书的方法 如果您不熟悉Linux,那么应该从前两章开始学起。如果已经熟悉了Java,则可以略过第3章,但是至少应该浏览第4、5章。绝对有必要阅读第7章,我们确信在这一章您能学到不少新知识。 第8章讨论的是您在Linux之外的环境中没有遇到过的一个话题,尽管CVS并不局限于Linux环境。除此之外,这一章的学习也取决于您已经掌握的内容。 Java新手学习本书的方法 如果您不熟悉Java,那么一定要阅读第3、4章,但是如果您还不是一个有经验的程序员,或许应该阅读更多相关的入门书籍。 第5、10章将会介绍一些背景知识,以便您选择自己的Java开发工具。现在,许多的Java项目都与Ant有关,如果不知道这个工具,还应该阅读第9章。 如果具有其他语言的编程经验,您可能已经做过许多单元测试,在第13章介绍了一些Java开发人员最常用的方法。 客户端的方法 您或许想将本书一半的内容浓缩为几段话,这取决于您所需要的Java开发类型。对前端或者客户端感兴趣的读者应该关注中间章节。您最感兴趣的可能是第16、17章。客户端的重点应该包括第18、19章。 服务器端的方法 对于那些重点在中间层以及第三层的读者,或者重点在通用服务器的读者,第IV部分的所有内容都是有价值的。除了第I、II部分的前面章节之外,这是另外一些基础知识。 企业的方法 第V部分将讨论企业级的软件。这种软件通常包括JSP以及Servlet软件,在第18~20章将对此进行讨论。 对于这个层次上的工作,项目通常很大,需要各类不同的人员。即使您的角色不包括部署软件,我们也鼓励您阅读第20章和第24章,从而理解企业软件需要什么,如何将其组合在一起。 现在我们开始介绍这些内容,并揭示当您将计算机历史上功能最强大的两个软件(Java以及Linux)结合在一起的时候,您可以使用的一些奇妙功能。