﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-『一只小蚂蚁』的专栏-随笔分类-Java ABC</title><link>http://www.blogjava.net/qixiangnj/category/22116.html</link><description>&lt;strong&gt;生命不息，拼搏不止。&lt;/strong&gt;</description><language>zh-cn</language><lastBuildDate>Sun, 30 Sep 2007 16:11:48 GMT</lastBuildDate><pubDate>Sun, 30 Sep 2007 16:11:48 GMT</pubDate><ttl>60</ttl><item><title>【翻译】比较NetBeans 6.0 M10和IntelliJ IDEA 7.0 M1</title><link>http://www.blogjava.net/qixiangnj/archive/2007/09/30/149972.html</link><dc:creator>Thomas</dc:creator><author>Thomas</author><pubDate>Sun, 30 Sep 2007 10:44:00 GMT</pubDate><guid>http://www.blogjava.net/qixiangnj/archive/2007/09/30/149972.html</guid><wfw:comment>http://www.blogjava.net/qixiangnj/comments/149972.html</wfw:comment><comments>http://www.blogjava.net/qixiangnj/archive/2007/09/30/149972.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/qixiangnj/comments/commentRss/149972.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qixiangnj/services/trackbacks/149972.html</trackback:ping><description><![CDATA[比较NetBeans 6.0 M10和IntelliJ IDEA 7.0 M1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ——IntelliJ IDEA使用手记<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 原文作者: Ryan de Laplante &#8226; Filed<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 本文作者: Thomas Qi<br />
<br />
【译者按】前不久，NetBeans 6.0 M10一发布，就引起广泛关注。在Java IDE市场，除了老牌劲旅Eclipse之外，还有另外一个很受欢迎的产品——IntelliJ IDEA，它的重构特性，备受推崇。最新版本的IntelliJ IDEA 7.0 M1，已于近日发布。<br />
本文作者是一位忠实的NetBeans用户。他从一个IDEA新手的角度，对NetBeans 6.0 M10和IntelliJ IDEA 7.0 M1作了一个较全面的比较。<br />
<br />
&nbsp; 最近，我看到很多有关Java IDE IntelliJ IDEA的讨论。我只是听说过一些它好的地方，并且对它与NetBeans 6.0（beta）比较起来，究竟如何？很好奇。<br />
&nbsp; 我反复听到的一些有关IDEA的观点，主要是关于它的代码编辑器、重构能力以及性能的。众所周知，在 重构方面，IDEA领先于其他的IDE工具。所以，关于它的重构能力，我没有过多关注，取而代之的是，把一些我个人认为在NetBeans里很有用以及有待改进的地方与之比较。<br />
&nbsp; 我下载的是IntelliJ IDEA 7.0 M1（dev build）和NetBeans 6.0 M10，使用的是JDK 1.6.0，运行是在Ubuntu Linux 7.04上。这是我第一次尝试IDEA。<br />
&nbsp; 首先使我震惊的是IDEA启动、待用的快速。<br />
&nbsp; 几天后，当我再次使用的时候，这种印象不再那么深刻，因为它好像花费了更多的时间。或许，第一次使用IDEA的时候，Java虚拟机已经载入了，而第二次没有载入？另外，第二次启动的时候，IDEA还检查了那些在第一次使用时创建的项目文件。<br />
&nbsp; IDEA在启动、可用上花费了15秒，而NetBeans 6.0则花费了30秒。因为我每天只启动一次IDE，所以载入时间对于我来说，不是一个大问题。<br />
&nbsp; 接着，我在IDEA里新建了一个web项目。<br />
&nbsp; 我真的不喜欢那个似乎包含了15个步骤的项目向导，它问我各种各样的问题，例如：源文件放在哪个目录？编译文件放在哪个目录？资源文件放在哪个目录？如此等等。我必须阅读大量文字才能做出决定。我更喜欢NetBeans 6.0的新建项目向导。每个步骤，它不只问我一个问题，并且为我作了大量的默认设置。我喜欢这些默认设置（例如路径）的一致性。<br />
&nbsp; 然而，我认为，IDEA很灵活，足以适应任意的目录结构，这点很强大。当你需要使用在别的IDE工具或者文本编辑器里写的代码的时候，这很有用。NetBeans具有&#8220;新建基于现有源代码的Java项目&#8221;的功能，我没有去尝试，不知道它有多灵活。<br />
&nbsp; IDEA具有&#8220;导入Eclipse项目&#8221;和&#8220;导入Jbuilder项目&#8221;的功能。NetBeans 6的帮助文件里说可以通过更新中心来添加&#8220;导入Eclipse项目&#8221;和&#8220;导入Jbuilder项目&#8221;的功能模块，更新中心已经更名为插件管理器，但是我没有看到这些插件，或许它们会在正式版本中出现？<br />
&nbsp; 在IDEA里新建完一个web项目，我双击web.xml文件。<br />
&nbsp; 接下来看到的，使我震惊，我看到了——原始XML文件！！！我还看到了ejb-jar.xml、sun-web.xml、persistence.xml以及别的部署描述文件，这些竟然都是原始XML文件！<br />
&nbsp; 我不敢相信，IDEA竟然没有NetBeans、Jdeveloper、WebSphere Studio以及别的IDE工具都有的可视化部署描述文件编辑器！一些开发者或许认为编辑这些部署描述文件很简单，尤其还有代码提示。呵呵，那是因为你用的不是IDEA，否则你该发问了：既然有JSF和Struts导航文件的可视化编辑器，那为什么没有别的部署描述文件可视化编辑器呢？<br />
&nbsp; 接下来，我想尝试的是&#8220;臭名昭著的&#8221;代码编辑器。<br />
&nbsp; 打开web.xml文件，我开始输入一些可用的元素名称，我对代码提示的瞬时响应能力，印象深刻。它只有一个短暂的延迟，代码提示打开，大概只花费了半秒，似乎我的手指还在按住CTRL+SPACE的时候，代码提示就已经打开了。<br />
&nbsp; 接着，我新建了一个Java类文件，用于试验更多代码时的提示情况。我再次被代码提示的快速所震撼！<br />
&nbsp; 我发现，在IDEA里，无论我按住或者单击什么，都会有一个瞬时的响应。非常棒！我以前认为，IDEA用户说Eclipse和NetBeans很慢很慢，显得过于夸张。但是，如果我习惯了IDEA的这种性能，对别的IDE工具，我想我也会说同样的话。然而，我不认为你可以说NetBeans 6不再那么慢了。<br />
&nbsp; NetBeans 6的一个主要的新特性就是完全重写了代码编辑器。新的代码编辑器使用了JDK 6.0的编译程序API，用于访问抽象语法树（Abstract Syntax Tree）。它反应相当快，对代码编辑器里的每个细微之处都给予及时响应。<br />
&nbsp; 我尝试了NetBeans 6.0的代码提示功能，同样印象深刻。我看到一些IDEA的用户在说NetBeans 6.0还是很慢，但我自己感觉不出来。与NetBeans 5.5相比，NetBeans 6.0的代码编辑器有了显著的改进。<br />
&nbsp; 之前我说过，我将不再谈论重构。我食言了。<br />
&nbsp; 我想谈谈NetBeans 6.0的新的重构引擎——Jackpot。<br />
&nbsp; Jackpot是一个语言无关的用于重构的API，它除了允许对普通.java源文件（例如XML或者JSF文件）进行重构，还允许对非Java元素进行重构。这使得当前的重构工作更加安全并且易于使用。事实上，Jackpot是一个综合的、用于生成便于理解和维护的代码的框架。你可以把它作为实现这些特征的一个替代或者基础：重构支持、高级搜索和浏览、质量审查、复杂编辑任务的自动化（类似宏命令），等等。<br />
&nbsp; Jackpot还提供了用于编写重构规则的查询语言。你会发现，NetBeans 6里面的重构规则实际上就是Jackpot脚本。我相信有一天，Sun或者别的社区会创建出匹配IDEA重构能力的Jackpot脚本。<br />
&nbsp; 现在回到IDEA，这是我喜欢的一些其他特性：<br />
&nbsp;&nbsp;&nbsp; 当新建一个JSF项目时，我可以选择Sun的参考实现或者Apache的MyFaces。我通常选择Sun的参考实现，但是需要用到某些应用服务器的时候，你必须使用MyFaces。我认为一些JSF的组件库还是依赖于MyFaces。<br />
&nbsp;&nbsp;&nbsp; 内置了对Spring和Hibernate的支持。我敢打赌，NetBeans默认没有提供这些内置支持，是因为Sun正在推动Java EE。是有几个关于Spring和Hibernate的插件，但是我不确定它们是否好用，我也从没有看到有人在使用或者谈论它们。<br />
&nbsp;&nbsp;&nbsp; IDEA支持这样一些应用服务器：Tomcat、Geronimo、WebLogic、WebSphere、Jboss、Glassfish/Sun App Server。NetBeans也支持这些，但是使用Geronimo和WebSphere时出现了异常。<br />
&nbsp;&nbsp;&nbsp; IDEA支持使用目录展开格式来部署web应用。我不认为NetBeans也支持这个。<br />
&nbsp;&nbsp;&nbsp; IDEA内置了很多代码分析功能，例如，代码度量、测试覆盖、相当于checkstyle和findbugs，等等。NetBeans有一些插件用来实现这样的功能，但是我怀疑在NetBeans 6里它们是否还能正常工作，并且它们不是内置的。<br />
&nbsp;&nbsp;&nbsp; 不好的地方，要想在IDEA里使用性能分析器，你需要再多花500美元。NetBeans则内置了一个强大的性能分析器。<br />
&nbsp; 我看到有开发者抱怨说，包含10000到20000个文件的项目，在NetBeans里运行很慢。我不知道他们使用的是NetBeans 5.5还是6.0？但是在6.0里，性能问题是被最优先考虑的。M10是NetBeans 6的最后一个里程碑版本。目前功能基本完成了，从现在到11月份最终版发布，主要的工作就是修复bug和改进性能。<br />
&nbsp; 我承认，我没有对IDEA做一个详尽的调查，我只是粗略地研究了一下，但是对我关心的热点问题都有所涉及。<br />
为了完全体验IDEA，我需要花费数周的时间来学习它的快捷键、重构特性。喜爱IDEA的人会说，一旦你学会了它，你将不再对别的IDE工具感兴趣。如果我必须使用IDEA来工作，我想这也不错。我虽没有用Java开发过百万个项目，可是使用NetBeans我并没有觉得受到什么限制。NetBeans有我需要的所有功能并且我不觉得它慢。<br />
&nbsp; 我想，我不会马上就换用IDEA——至少在NetBeans 6.0最终版发布之前。<br />
（原文地址：http://www.ryandelaplante.com/rdelaplante/entry/a_comparison_of_netbeans_6）<br />
<img src ="http://www.blogjava.net/qixiangnj/aggbug/149972.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qixiangnj/" target="_blank">Thomas</a> 2007-09-30 18:44 <a href="http://www.blogjava.net/qixiangnj/archive/2007/09/30/149972.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>动态代理在Java中的简单应用</title><link>http://www.blogjava.net/qixiangnj/archive/2007/02/04/97888.html</link><dc:creator>Thomas</dc:creator><author>Thomas</author><pubDate>Sun, 04 Feb 2007 13:43:00 GMT</pubDate><guid>http://www.blogjava.net/qixiangnj/archive/2007/02/04/97888.html</guid><wfw:comment>http://www.blogjava.net/qixiangnj/comments/97888.html</wfw:comment><comments>http://www.blogjava.net/qixiangnj/archive/2007/02/04/97888.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/qixiangnj/comments/commentRss/97888.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qixiangnj/services/trackbacks/97888.html</trackback:ping><description><![CDATA[1. com.cleversoft.demos.dynamicproxy.Subject.java:<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"><span style="color: #0000ff;">package</span><span style="color: #000000;">&nbsp;com.cleversoft.demos.dynamicproxy;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"><br><img id="Codehighlighter1_69_95_Open_Image" onclick="this.style.display='none'; codehighlighter1_69_95_open_text.style.display=" none="" ;="" codehighlighter1_69_95_closed_image.style.display="'inline';" codehighlighter1_69_95_closed_text.style.display="'inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_69_95_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_69_95_closed_text.style.display=" none="" ;="" codehighlighter1_69_95_open_image.style.display="'inline';" codehighlighter1_69_95_open_text.style.display="'inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align="top"></span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">interface</span><span style="color: #000000;">&nbsp;Subject&nbsp;</span><span id="Codehighlighter1_69_95_Closed_Text" style="border: 1px solid #808080; display: none; background-color: #ffffff;"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id="Codehighlighter1_69_95_Open_Text"><span style="color: #000000;">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;request();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top">}</span></span></div>
<br>2. com.cleversoft.demos.dynamicproxy.RealSubject.java:<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"><span style="color: #0000ff;">package</span><span style="color: #000000;">&nbsp;com.cleversoft.demos.dynamicproxy;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"><br><img id="Codehighlighter1_88_190_Open_Image" onclick="this.style.display='none'; codehighlighter1_88_190_open_text.style.display=" none="" ;="" codehighlighter1_88_190_closed_image.style.display="'inline';" codehighlighter1_88_190_closed_text.style.display="'inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_88_190_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_88_190_closed_text.style.display=" none="" ;="" codehighlighter1_88_190_open_image.style.display="'inline';" codehighlighter1_88_190_open_text.style.display="'inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align="top"></span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;RealSubject&nbsp;</span><span style="color: #0000ff;">implements</span><span style="color: #000000;">&nbsp;Subject&nbsp;</span><span id="Codehighlighter1_88_190_Closed_Text" style="border: 1px solid #808080; display: none; background-color: #ffffff;"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id="Codehighlighter1_88_190_Open_Text"><span style="color: #000000;">{<br><img id="Codehighlighter1_112_115_Open_Image" onclick="this.style.display='none'; codehighlighter1_112_115_open_text.style.display=" none="" ;="" codehighlighter1_112_115_closed_image.style.display="'inline';" codehighlighter1_112_115_closed_text.style.display="'inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_112_115_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_112_115_closed_text.style.display=" none="" ;="" codehighlighter1_112_115_open_image.style.display="'inline';" codehighlighter1_112_115_open_text.style.display="'inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;RealSubject()&nbsp;</span><span id="Codehighlighter1_112_115_Closed_Text" style="border: 1px solid #808080; display: none; background-color: #ffffff;"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id="Codehighlighter1_112_115_Open_Text"><span style="color: #000000;">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><br><img id="Codehighlighter1_141_188_Open_Image" onclick="this.style.display='none'; codehighlighter1_141_188_open_text.style.display=" none="" ;="" codehighlighter1_141_188_closed_image.style.display="'inline';" codehighlighter1_141_188_closed_text.style.display="'inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_141_188_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_141_188_closed_text.style.display=" none="" ;="" codehighlighter1_141_188_open_image.style.display="'inline';" codehighlighter1_141_188_open_text.style.display="'inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;request()&nbsp;</span><span id="Codehighlighter1_141_188_Closed_Text" style="border: 1px solid #808080; display: none; background-color: #ffffff;"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id="Codehighlighter1_141_188_Open_Text"><span style="color: #000000;">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">From&nbsp;real&nbsp;subject.</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top">}</span></span></div>
<br>3. com.cleversoft.demos.dynamicproxy.DynamicSubject.java:<br>动态代理类需要实现InvocationHandler接口，即需要实现invoke()方法。<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"><span style="color: #0000ff;">package</span><span style="color: #000000;">&nbsp;com.cleversoft.demos.dynamicproxy;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"></span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.lang.reflect.Method;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"></span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.lang.reflect.InvocationHandler;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"><br><img id="Codehighlighter1_179_532_Open_Image" onclick="this.style.display='none'; codehighlighter1_179_532_open_text.style.display=" none="" ;="" codehighlighter1_179_532_closed_image.style.display="'inline';" codehighlighter1_179_532_closed_text.style.display="'inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_179_532_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_179_532_closed_text.style.display=" none="" ;="" codehighlighter1_179_532_open_image.style.display="'inline';" codehighlighter1_179_532_open_text.style.display="'inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align="top"></span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;DynamicSubject&nbsp;</span><span style="color: #0000ff;">implements</span><span style="color: #000000;">&nbsp;InvocationHandler&nbsp;</span><span id="Codehighlighter1_179_532_Closed_Text" style="border: 1px solid #808080; display: none; background-color: #ffffff;"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id="Codehighlighter1_179_532_Open_Text"><span style="color: #000000;">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;Object&nbsp;_obj;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><br><img id="Codehighlighter1_230_233_Open_Image" onclick="this.style.display='none'; codehighlighter1_230_233_open_text.style.display=" none="" ;="" codehighlighter1_230_233_closed_image.style.display="'inline';" codehighlighter1_230_233_closed_text.style.display="'inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_230_233_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_230_233_closed_text.style.display=" none="" ;="" codehighlighter1_230_233_open_image.style.display="'inline';" codehighlighter1_230_233_open_text.style.display="'inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;DynamicSubject()&nbsp;</span><span id="Codehighlighter1_230_233_Closed_Text" style="border: 1px solid #808080; display: none; background-color: #ffffff;"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id="Codehighlighter1_230_233_Open_Text"><span style="color: #000000;">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><br><img id="Codehighlighter1_271_293_Open_Image" onclick="this.style.display='none'; codehighlighter1_271_293_open_text.style.display=" none="" ;="" codehighlighter1_271_293_closed_image.style.display="'inline';" codehighlighter1_271_293_closed_text.style.display="'inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_271_293_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_271_293_closed_text.style.display=" none="" ;="" codehighlighter1_271_293_open_image.style.display="'inline';" codehighlighter1_271_293_open_text.style.display="'inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;DynamicSubject(Object&nbsp;obj)&nbsp;</span><span id="Codehighlighter1_271_293_Closed_Text" style="border: 1px solid #808080; display: none; background-color: #ffffff;"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id="Codehighlighter1_271_293_Open_Text"><span style="color: #000000;">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">._obj&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;obj;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;Object&nbsp;invoke(Object&nbsp;proxy,&nbsp;Method&nbsp;method,&nbsp;Object[]&nbsp;args)<br><img id="Codehighlighter1_382_529_Open_Image" onclick="this.style.display='none'; codehighlighter1_382_529_open_text.style.display=" none="" ;="" codehighlighter1_382_529_closed_image.style.display="'inline';" codehighlighter1_382_529_closed_text.style.display="'inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_382_529_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_382_529_closed_text.style.display=" none="" ;="" codehighlighter1_382_529_open_image.style.display="'inline';" codehighlighter1_382_529_open_text.style.display="'inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">throws</span><span style="color: #000000;">&nbsp;Throwable&nbsp;</span><span id="Codehighlighter1_382_529_Closed_Text" style="border: 1px solid #808080; display: none; background-color: #ffffff;"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id="Codehighlighter1_382_529_Open_Text"><span style="color: #000000;">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">before&nbsp;calling&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;method);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;method.invoke(_obj,&nbsp;args);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">after&nbsp;calling&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;method);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top">}</span></span></div>
<br>4. com.cleversoft.demos.dynamicproxy.Client.java:<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"><span style="color: #0000ff;">package</span><span style="color: #000000;">&nbsp;com.cleversoft.demos.dynamicproxy;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"></span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.lang.reflect.InvocationHandler;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"></span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.lang.reflect.Proxy;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"><br><img id="Codehighlighter1_141_469_Open_Image" onclick="this.style.display='none'; codehighlighter1_141_469_open_text.style.display=" none="" ;="" codehighlighter1_141_469_closed_image.style.display="'inline';" codehighlighter1_141_469_closed_text.style.display="'inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_141_469_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_141_469_closed_text.style.display=" none="" ;="" codehighlighter1_141_469_open_image.style.display="'inline';" codehighlighter1_141_469_open_text.style.display="'inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align="top"></span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;Client&nbsp;</span><span id="Codehighlighter1_141_469_Closed_Text" style="border: 1px solid #808080; display: none; background-color: #ffffff;"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id="Codehighlighter1_141_469_Open_Text"><span style="color: #000000;">{<br><img id="Codehighlighter1_200_467_Open_Image" onclick="this.style.display='none'; codehighlighter1_200_467_open_text.style.display=" none="" ;="" codehighlighter1_200_467_closed_image.style.display="'inline';" codehighlighter1_200_467_closed_text.style.display="'inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_200_467_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_200_467_closed_text.style.display=" none="" ;="" codehighlighter1_200_467_open_image.style.display="'inline';" codehighlighter1_200_467_open_text.style.display="'inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span style="color: #0000ff;">throws</span><span style="color: #000000;">&nbsp;Throwable&nbsp;</span><span id="Codehighlighter1_200_467_Closed_Text" style="border: 1px solid #808080; display: none; background-color: #ffffff;"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id="Codehighlighter1_200_467_Open_Text"><span style="color: #000000;">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RealSubject&nbsp;rs&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;RealSubject();&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;指定被代理类</span><span style="color: #008000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InvocationHandler&nbsp;ih&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;DynamicSubject(rs);&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;初始化代理类</span><span style="color: #008000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Class&nbsp;cls&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;rs.getClass();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Subject&nbsp;subject&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;(Subject)&nbsp;Proxy.newProxyInstance(<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cls.getClassLoader(),&nbsp;cls.getInterfaces(),&nbsp;ih);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;subject.request();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top">}</span></span></div>
<br><br>参考资料：<br>1. 《Java与模式》<br>2. <a href="http://dev.csdn.net/Develop/article/28/61250.shtm">http://dev.csdn.net/Develop/article/28/61250.shtm</a>  <img src ="http://www.blogjava.net/qixiangnj/aggbug/97888.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qixiangnj/" target="_blank">Thomas</a> 2007-02-04 21:43 <a href="http://www.blogjava.net/qixiangnj/archive/2007/02/04/97888.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>当前项目开发中使用的一个Ant脚本</title><link>http://www.blogjava.net/qixiangnj/archive/2006/12/21/89311.html</link><dc:creator>Thomas</dc:creator><author>Thomas</author><pubDate>Thu, 21 Dec 2006 08:32:00 GMT</pubDate><guid>http://www.blogjava.net/qixiangnj/archive/2006/12/21/89311.html</guid><wfw:comment>http://www.blogjava.net/qixiangnj/comments/89311.html</wfw:comment><comments>http://www.blogjava.net/qixiangnj/archive/2006/12/21/89311.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qixiangnj/comments/commentRss/89311.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qixiangnj/services/trackbacks/89311.html</trackback:ping><description><![CDATA[build.xml:<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">project&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="cTrace"</span><span style="color: #ff0000;">&nbsp;default</span><span style="color: #0000ff;">="runie"</span><span style="color: #ff0000;">&nbsp;basedir</span><span style="color: #0000ff;">="."</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;Name&nbsp;of&nbsp;project&nbsp;and&nbsp;version&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">property&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="proj.name"</span><span style="color: #ff0000;">&nbsp;value</span><span style="color: #0000ff;">="cTrace"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">property&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="proj.version"</span><span style="color: #ff0000;">&nbsp;value</span><span style="color: #0000ff;">="1.0"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;Global&nbsp;properties&nbsp;for&nbsp;this&nbsp;build&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">property&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="src.java.dir"</span><span style="color: #ff0000;">&nbsp;value</span><span style="color: #0000ff;">="src"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">property&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="lib.dir"</span><span style="color: #ff0000;">&nbsp;value</span><span style="color: #0000ff;">="lib"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">property&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="build.dir"</span><span style="color: #ff0000;">&nbsp;value</span><span style="color: #0000ff;">="bin"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">property&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="dist.dir"</span><span style="color: #ff0000;">&nbsp;value</span><span style="color: #0000ff;">="dist"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;================================&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">property&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="main.class"</span><span style="color: #ff0000;">&nbsp;value</span><span style="color: #0000ff;">="com"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">property&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="dest.dir"</span><span style="color: #ff0000;">&nbsp;value</span><span style="color: #0000ff;">="C:\Inetpub\wwwroot\aes\cTrace\reports"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">property&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="run.class"</span><span style="color: #ff0000;">&nbsp;value</span><span style="color: #0000ff;">="com.aesclever.ctrace.packetview.PacketViewApplet"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">property&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="ie.dir"</span><span style="color: #ff0000;">&nbsp;value</span><span style="color: #0000ff;">="C:\Program&nbsp;Files\Internet&nbsp;Explorer"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;================================&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;Classpath&nbsp;declaration&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">path&nbsp;</span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">="project.classpath"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">fileset&nbsp;</span><span style="color: #ff0000;">dir</span><span style="color: #0000ff;">="${lib.dir}"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">include&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="**/*.jar"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">include&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="**/*.zip"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">fileset</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">path</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;Useful&nbsp;shortcuts&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">patternset&nbsp;</span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">="meta.files"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">include&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="**/*.xml"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">include&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="**/*.properties"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">patternset</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;Clean&nbsp;up&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">target&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="clean"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">delete&nbsp;</span><span style="color: #ff0000;">dir</span><span style="color: #0000ff;">="${build.dir}"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">mkdir&nbsp;</span><span style="color: #ff0000;">dir</span><span style="color: #0000ff;">="${build.dir}"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">delete&nbsp;</span><span style="color: #ff0000;">dir</span><span style="color: #0000ff;">="${dist.dir}"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">mkdir&nbsp;</span><span style="color: #ff0000;">dir</span><span style="color: #0000ff;">="${dist.dir}"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">target</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;Compile&nbsp;Java&nbsp;source&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">target&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="compile"</span><span style="color: #ff0000;">&nbsp;depends</span><span style="color: #0000ff;">="clean"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">mkdir&nbsp;</span><span style="color: #ff0000;">dir</span><span style="color: #0000ff;">="${build.dir}"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">javac&nbsp;</span><span style="color: #ff0000;">srcdir</span><span style="color: #0000ff;">="${src.java.dir}"</span><span style="color: #ff0000;">&nbsp;destdir</span><span style="color: #0000ff;">="${build.dir}"</span><span style="color: #ff0000;">&nbsp;nowarn</span><span style="color: #0000ff;">="on"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">classpath&nbsp;</span><span style="color: #ff0000;">refid</span><span style="color: #0000ff;">="project.classpath"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">javac</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">target</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;Copy&nbsp;metadata&nbsp;to&nbsp;build&nbsp;classpath&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">target&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="copymetafiles"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">copy&nbsp;</span><span style="color: #ff0000;">todir</span><span style="color: #0000ff;">="${build.dir}"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">fileset&nbsp;</span><span style="color: #ff0000;">dir</span><span style="color: #0000ff;">="${src.java.dir}"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">patternset&nbsp;</span><span style="color: #ff0000;">refid</span><span style="color: #0000ff;">="meta.files"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">fileset</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">copy</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">target</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;Create&nbsp;Jar&nbsp;file&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">target&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="dist"</span><span style="color: #ff0000;">&nbsp;depends</span><span style="color: #0000ff;">="compile,&nbsp;copymetafiles"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">jar&nbsp;</span><span style="color: #ff0000;">destfile</span><span style="color: #0000ff;">="${dist.dir}/${proj.name}.jar"</span><span style="color: #ff0000;">&nbsp;basedir</span><span style="color: #0000ff;">="${build.dir}"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">manifest</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">attribute&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="Built-By"</span><span style="color: #ff0000;">&nbsp;value</span><span style="color: #0000ff;">="${user.name}"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">attribute&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="Main-Class"</span><span style="color: #ff0000;">&nbsp;value</span><span style="color: #0000ff;">="${main.class}"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">manifest</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">jar</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">jar&nbsp;</span><span style="color: #ff0000;">destfile</span><span style="color: #0000ff;">="${dist.dir}/${proj.name}-src.jar"</span><span style="color: #ff0000;">&nbsp;basedir</span><span style="color: #0000ff;">="${src.java.dir}"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">target</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;Copy&nbsp;Jar&nbsp;file&nbsp;to&nbsp;destdir&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">target&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="copy"</span><span style="color: #ff0000;">&nbsp;depends</span><span style="color: #0000ff;">="dist"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">copy&nbsp;</span><span style="color: #ff0000;">todir</span><span style="color: #0000ff;">="${dest.dir}"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">fileset&nbsp;</span><span style="color: #ff0000;">dir</span><span style="color: #0000ff;">="${dist.dir}"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">fileset</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">copy</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">target</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;Run&nbsp;IE&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">target&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="runie"</span><span style="color: #ff0000;">&nbsp;depends</span><span style="color: #0000ff;">="copy"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">exec&nbsp;</span><span style="color: #ff0000;">executable</span><span style="color: #0000ff;">="cmd.exe"</span><span style="color: #ff0000;">&nbsp;dir</span><span style="color: #0000ff;">="${ie.dir}"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">arg&nbsp;</span><span style="color: #ff0000;">line</span><span style="color: #0000ff;">="/c&nbsp;iexplore"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">exec</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">target</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;Run&nbsp;cTrace&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">target&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="run"</span><span style="color: #ff0000;">&nbsp;depends</span><span style="color: #0000ff;">="compile,&nbsp;copymetafiles"</span><span style="color: #ff0000;">&nbsp;description</span><span style="color: #0000ff;">="Build&nbsp;and&nbsp;run&nbsp;cTrace"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">java&nbsp;</span><span style="color: #ff0000;">fork</span><span style="color: #0000ff;">="true"</span><span style="color: #ff0000;">&nbsp;classname</span><span style="color: #0000ff;">="${run.class}"</span><span style="color: #ff0000;">&nbsp;classpathref</span><span style="color: #0000ff;">="project.classpath"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">classpath&nbsp;</span><span style="color: #ff0000;">path</span><span style="color: #0000ff;">="${build.dir}"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">java</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">target</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"></span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">project</span><span style="color: #0000ff;">&gt;</span></div><img src ="http://www.blogjava.net/qixiangnj/aggbug/89311.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qixiangnj/" target="_blank">Thomas</a> 2006-12-21 16:32 <a href="http://www.blogjava.net/qixiangnj/archive/2006/12/21/89311.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>