Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1996526
  • 博文数量: 1647
  • 博客积分: 80000
  • 博客等级: 元帅
  • 技术积分: 9980
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-13 15:15
文章分类

全部博文(1647)

文章存档

2011年(1)

2008年(1646)

我的朋友

分类:

2008-10-28 17:46:52

  用户可能遇到什么样的问题呢?首先,如果用户没有完全按照正确的安装步骤,在安装过程中就可能会出现问题了。即使安装成功了,之后问题仍然可能出现。配置(像JAVA_HOME环境变量)的改变或者目录结构的改变无疑会导致问题。在本文中,我们将要开发一个Ant脚本来为一个程序运行诊断测试。我们将着眼于建立一个可能出现的问题的列表以及如何来解决这些问题。Ant需要提前被安装在用户的机器上,这意味着你的安装程序可能需要提供Ant。

  系统配置

  在除错时你需要知道的第一件事就是系统配置——操作系统,版本,类路径等等。由于Ant提供了对所有Java系统属性的访问,实现这一功能是很容易的。下面是一个示例:


            basedir=".">

  
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
  


  




  示例将有如下输出:

$ ant -f diagnostic.xml
Buildfile: diagnostic.xml

systemProperties:
     [echo] Java Runtime Environment version:
            1.4.2_05
     [echo] Java Runtime Environment vendor:
            Apple Computer, Inc.
     [echo] Java Runtime Environment vendor URL:
            
     ...
     [echo] Default temp file path: /tmp
     [echo] Operating system name: Mac OS X
     [echo] Operating system architecture: ppc
     [echo] Operating system version: 10.3.9
  现在,如果哪个方面出现了问题,你就可以在系统属性中找到问题的源头了,比如错误的Java版本或者类路径等等。

  文件和类路径的有效性

  我们可以进一步实现一些自动测试来检测一个文件或类能否被找到:


    
    的位置将已知为正确版本的类文件存放在一个.jar或者.zip文件中并且解包它们。然后你就可以使用已知的正确版本来替换被改变的类文件了。

  另一方面,配置文件可以从源文件夹中拷贝过来。我们可以适当地扩展目标configChanged并且添加一个目标configRestore来实现这一功能:

 depends="checksum" unless="config.unchanged">
    
               addproperty="config.restore"/>
    
      
    

  


     depends="configChanged" if="config.copy">
    
         tofile="build/config.xml.1" overwrite="true"/>
         overwrite="true"/>
  



  将目标加入到目标all的依存关系中。如果配置文件被改变,Ant将询问用户是否希望备份该配置文件并且恢复为初始状态。如果用户按下了“Y”和回车键来选择“Yes”,属性config.copy将被设置,目标configRestore只有在这一属性被设置的情况下才会执行,它备份build/config.xml 为 build/config.xml.1,然后将原始的src/config.xml 拷贝为 build/config.xml。

  结论

  我们开发了一个Ant脚本来为Java应用软件执行诊断测试,该脚本检查已安装的Java版本是否符合最低要求,一些重要文件是否被改变,一个指定的Java类是否在类路径中,一个目录是否存在等等。在检查了软件的所有先决条件之后,脚本将结果报告给用户。该脚本甚至可以修复一些问题。另外,诊断脚本的输出也可以为技术支持人员所用,来快速地帮助用户,而不需要问上一大堆的问题。

  资源

  ·  本文的源代码
  ·   Apache Ant计划
  ·   Apache Ant用户指南
  ·    "Writing Ant Tasks"

  Koen Vervloesem拥有计算机科学的硕士学位,从2000年开始成为IT自由撰稿人,主要为荷兰的IT期刊撰稿。

  版权声明:任何获得Matrix授权的网站,转载时请务必保留以下作者信息和链接
  原文:
  译文:

【责编:yuan】

--------------------next---------------------

阅读(199) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~