﻿<?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-烦恼岁月</title><link>http://www.blogjava.net/hjh/</link><description>付出总是有回报的
take action follow your heart , or follow your head</description><language>zh-cn</language><lastBuildDate>Sun, 12 Apr 2026 06:09:50 GMT</lastBuildDate><pubDate>Sun, 12 Apr 2026 06:09:50 GMT</pubDate><ttl>60</ttl><item><title>用schemaSpy制作数据库文档</title><link>http://www.blogjava.net/hjh/archive/2010/05/16/321095.html</link><dc:creator>不需要解释</dc:creator><author>不需要解释</author><pubDate>Sun, 16 May 2010 08:16:00 GMT</pubDate><guid>http://www.blogjava.net/hjh/archive/2010/05/16/321095.html</guid><wfw:comment>http://www.blogjava.net/hjh/comments/321095.html</wfw:comment><comments>http://www.blogjava.net/hjh/archive/2010/05/16/321095.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hjh/comments/commentRss/321095.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hjh/services/trackbacks/321095.html</trackback:ping><description><![CDATA[<p>自动地可视化表示数据库也可以让您受益匪浅。实体关系图（ERD）是实现数据库可视化的最流行的图示类型。大多数创建 ERD 的工具（例如，ERWinfor）都需要手动生成 ERD。虽然我将要示范的工具 SchemaSpy 无法与现存的一些更复杂的工具媲美，但是它能够提供数据库的高级 ERD 视图 — 以及约束、关系等。而且，通过自动构建来运行它，您就可以轻松地从您的版本控制库中检查数据定义语言（Data Definition Language，DDL）的最新显示。 <p> Ant 脚本使用 SchemaSpy 工具来创建 Javadoc 格式的文件： <p><a name="listing2"><b>结合使用 SchemaSpy、Ant 和 Javadoc</b></a><pre>&lt;property name="reports.dir" value="${basedir}"/&gt;
&lt;java jar="schemaSpy_3.1.1.jar"
  output="${reports.dir}/output.log"
  error="${reports.dir}/error.log"
  fork="true"&gt;
  &lt;arg line="-t mysql"/&gt;
  &lt;arg line="-host localhost"/&gt;
  &lt;arg line="-port 3306"/&gt;
  &lt;arg line="-db brewery"/&gt;
  &lt;arg line="-u root"/&gt;
  &lt;arg line="-p sa"/&gt;
  &lt;arg line="-cp mysql-connector-java-5.0.5-bin.jar"/&gt;
  &lt;arg line="-o ${reports.dir}"/&gt;
&lt;/java&gt;
</pre>
<p>&nbsp; <p> 使用 <code>java</code> Ant 任务调用 SchemaSpy，传递了很多属性：
<ul>
<li><b><code>-t</code> </b>为数据库类型（有效值为 <code>mysql</code>、<code>ora</code>、<code>db2</code>，等等。) 
<li><b><code>-host</code> </b>为托管数据库的计算机名。 
<li><b><code>-port</code> </b>为数据库 URL 的端口数。 
<li><b><code>-u</code> </b>为数据库用户名。 
<li><b><code>-p</code> </b>为数据库密码。 
<li><b><code>-cp</code> </b>为类路径（用于指示数据库驱动程序 JAR 文件的位置）。 
<li><b><code>-o</code> </b>为输出目录的位置。</li></ul>
<p>这些 SchemaSpy 的命令行属性用于生成显示 ERD 的 HTML 文件
<p>通过结合使用多种工具、作为构建的一部分针对数据库执行 ERD 生成脚本，并调度 ERD 生成，您就可以在开发过程中轻松、快速地做出很多数据库决策。
<p>另外，对于喜欢maven的同学，SchemaSpy&nbsp; 也提供了plugin
<p><a title="http://maven.wakaleo.com/mojo/maven-schemaspy-plugin/faq.html" href="http://maven.wakaleo.com/mojo/maven-schemaspy-plugin/faq.html">http://maven.wakaleo.com/mojo/maven-schemaspy-plugin/faq.html</a><img src ="http://www.blogjava.net/hjh/aggbug/321095.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hjh/" target="_blank">不需要解释</a> 2010-05-16 16:16 <a href="http://www.blogjava.net/hjh/archive/2010/05/16/321095.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>我的程序员5年（一）----参加工作</title><link>http://www.blogjava.net/hjh/archive/2010/05/04/319983.html</link><dc:creator>不需要解释</dc:creator><author>不需要解释</author><pubDate>Mon, 03 May 2010 16:06:00 GMT</pubDate><guid>http://www.blogjava.net/hjh/archive/2010/05/04/319983.html</guid><wfw:comment>http://www.blogjava.net/hjh/comments/319983.html</wfw:comment><comments>http://www.blogjava.net/hjh/archive/2010/05/04/319983.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hjh/comments/commentRss/319983.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hjh/services/trackbacks/319983.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp; 参加工作也已经5年多了，一直想回头回想一下自己，然后动笔写下来，一来是自己目前还可以记忆起一些事情，等自己将来老了，可以看看这些东西回忆回忆。二来也是想做一个总结。本来这个题目也可以叫做我的bmi5年，不过大家知道bmi的实在是少，而且现在这个公司已经名义上不存在了。</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; 我是在2001年去沈阳读书的，一直也是很喜欢沈阳的气候和东北人的豪爽，东北爷们是真正可以拿心和你交朋友的，不过我实在不喜欢东北的饮食，觉得不细腻，另外南方还有我的女人在等我回去，要女人来东北，难度不是一般的大，所以在找工作的时候，我就下定决心一定要找南方的公司，最好广州，深圳的，或者老家南昌的也是可以的。但是南方公司去东北招生的实在是少，除了华为，中兴之外真的是少的可怜，尽管我们学校在沈阳也是数一数二的学校。</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; 在04年在10月份，我面试的第一家公司是东软，没有办法，谁让我们学校是东软的最大股东尼（不知道现在是不是），面试的过程也还不错，考试题也做的很顺，东软还提出我们下学期直接找一些外教来教我们日文，不过当时东软给出的薪水实在是低的可怜，只有1800元，而且还要自己负责住宿，自己当时也老大不小了，还有女人在读书，是不是也是需要买些礼物的，而且沈阳和大连都不是我想去的地方，结果就直接没有去报道。</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; 接下来的日子也就整天在校内的招聘网站（白山黑水）上看帖子，看到了上海bmi的招聘广告，一看是上海的公司，而且做的是辽宁网通的项目，感觉项目很大，可以学到不少东西，关键是上海的公司，项目做完了就可以去上海发展呢，而且当时女朋友也还在读研究生，仔细的想想觉得这个公司还是比较适合自己，于是也开始做准备，接下来的事情都很顺利，笔试，面试，当时有资格参加面试的，整个我们学校也就2个人，一个本科生，一个研究生，不过最后那个研究生也没有过去。</p> <p>&nbsp;&nbsp;&nbsp;&nbsp; 在辽宁项目的前期这段时间，估计也会我成长最快，也是最艰苦的时间，我后续的会详细介绍到。我第一天上班就是去做release，也就是做发布和部署，在当时的项目中，我们并没有像一些公司还有项目配置员这个角色，就是直接拉一个开发人员来负责做release，这个角色当时是在项目中最辛苦的一个，经常是下午6点开始，然后编译3-4个小时，到10点才可以编译完成（比较顺利的情况下），如果遇到编译不过去的时候，还需要联系开发人员进行修改，编译之后在对照check list进行增量部署。</p> <p>&nbsp;&nbsp;&nbsp; 在第一天上班，我就从上午10点过去，第2天凌晨3点半才下班，到4点才到学校宿舍睡觉，后续的1个月都是如此，现在回想起来，感觉当时真的是很辛苦，不过那段时间也开始熟习了不少东西，知道了基于模块开发，对ant，weblogic，oracle，plsql，linux，aix等的使用也开始非常熟习了。在这段时间里也开始熟习了公司的项目情况，开发人员，测试人员。</p><img src ="http://www.blogjava.net/hjh/aggbug/319983.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hjh/" target="_blank">不需要解释</a> 2010-05-04 00:06 <a href="http://www.blogjava.net/hjh/archive/2010/05/04/319983.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用UMLGraph来生成uml图</title><link>http://www.blogjava.net/hjh/archive/2010/04/19/318791.html</link><dc:creator>不需要解释</dc:creator><author>不需要解释</author><pubDate>Mon, 19 Apr 2010 15:59:00 GMT</pubDate><guid>http://www.blogjava.net/hjh/archive/2010/04/19/318791.html</guid><wfw:comment>http://www.blogjava.net/hjh/comments/318791.html</wfw:comment><comments>http://www.blogjava.net/hjh/archive/2010/04/19/318791.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hjh/comments/commentRss/318791.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hjh/services/trackbacks/318791.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp; 最近在看一些项目的代码，总是发现很少项目提供出uml图，或者就是提供uml图的也有可能并没有和代码对应上，如果有正确的uml图，可以非常方便的为大家更好的理解代码层次逻辑。其实我们可以使用使用UMLGraph来生成uml图，直接使用java代码来生成UMLGraph。对于大部分项目来说，我们一般使用maven和ant（还在使用ant，你out了）来作为项目的编译工具。</p> <p>&nbsp;&nbsp;&nbsp; 在maven中，我们可以在pom.xml增加：</p> <blockquote> <p>&nbsp;&nbsp;&nbsp; &lt;reporting&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;plugins&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;plugin&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;artifactId&gt;maven-javadoc-plugin&lt;/artifactId&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;version&gt;2.6.1&lt;/version&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;configuration&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;doclet&gt;org.umlgraph.doclet.UmlGraphDoc&lt;/doclet&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- &lt;docletPath&gt;/path/to/UmlGraph.jar&lt;/docletPath&gt; --&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;docletArtifact&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;groupId&gt;org.umlgraph&lt;/groupId&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;artifactId&gt;doclet&lt;/artifactId&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;version&gt;5.1&lt;/version&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/docletArtifact&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;additionalparam&gt;-views&lt;/additionalparam&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;useStandardDocletOptions&gt;true&lt;/useStandardDocletOptions&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/configuration&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/plugin&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/plugins&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/reporting&gt; <p>使用<a href="http://maven.apache.org/aggregate-mojo.html">javadoc:aggregate</a> 就可以生成出整个项目按照package的uml图了。</p></blockquote> <p>如果是使用ant，在build.xml中增加target <p>&nbsp;&nbsp; &lt;target name="genuml"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="uml.dir" value="${basedir}/uml"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="src.uml.dir" value="${src.dir}/uml"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;mkdir dir="${uml.dir}"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;path id="uml.source.path"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;pathelement path="${src.uml.dir}/"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;pathelement path="${src.java.dir}"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/path&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;javadoc sourcepathref="uml.source.path" packagenames="*" package="true"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;doclet name="org.umlgraph.doclet.UmlGraph" path="${basedir}/lib/UmlGraph.jar"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param name="-d" value="${uml.dir}"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/doclet&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/javadoc&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;apply executable="dot" dest="${uml.dir}" parallel="false"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;arg value="-Tpng"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;arg value="-o"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;targetfile/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;srcfile/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fileset dir="${uml.dir}" includes="*.dot"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;mapper type="glob" from="*.dot" to="*.png"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/apply&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/target&gt; <p>注意：要正常使用 UMLGraph，您必须先安装 Graphviz 工具，请自己google相关信息。</p><img src ="http://www.blogjava.net/hjh/aggbug/318791.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hjh/" target="_blank">不需要解释</a> 2010-04-19 23:59 <a href="http://www.blogjava.net/hjh/archive/2010/04/19/318791.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>百支培训心得</title><link>http://www.blogjava.net/hjh/archive/2010/04/16/318565.html</link><dc:creator>不需要解释</dc:creator><author>不需要解释</author><pubDate>Fri, 16 Apr 2010 13:48:00 GMT</pubDate><guid>http://www.blogjava.net/hjh/archive/2010/04/16/318565.html</guid><wfw:comment>http://www.blogjava.net/hjh/comments/318565.html</wfw:comment><comments>http://www.blogjava.net/hjh/archive/2010/04/16/318565.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hjh/comments/commentRss/318565.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hjh/services/trackbacks/318565.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 尽管工作了5年多了，现在能想起来的培训真的是少之又少，但是我想以后，我一定不会这样说了，因为我参加了百支了！</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 百支对于我来说是一次清洗，洗掉以前的恶习，洗掉以前的老思维，重新培养我丢掉已久的价值观，重新找回往日的激情。来阿里之后，也一直在想一个问题，阿里和我以前公司有什么不同？或者说有什么特别的之处？其实这个问题有很简单，就是阿里是一家有梦想的公司，一家有价值观的公司，一家有亲情，友情的公司，一家工作生活一体的公司，从中国来看，阿里是唯一一家大的公司，而且价值体系贯彻的这么好的公司，only one in china。</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 百支培训了很多业务知识，传统线，虚拟线，兄弟线，安全线，资金线，…学到了很多东西。</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 百支的培训，让我开始结识了新的同学，新的家人，新的伙伴，让我们happly every day！ 认真工作，快乐生活！</p><img src ="http://www.blogjava.net/hjh/aggbug/318565.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hjh/" target="_blank">不需要解释</a> 2010-04-16 21:48 <a href="http://www.blogjava.net/hjh/archive/2010/04/16/318565.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>删除文件的一个简单方法</title><link>http://www.blogjava.net/hjh/archive/2009/11/10/301850.html</link><dc:creator>不需要解释</dc:creator><author>不需要解释</author><pubDate>Tue, 10 Nov 2009 08:19:00 GMT</pubDate><guid>http://www.blogjava.net/hjh/archive/2009/11/10/301850.html</guid><wfw:comment>http://www.blogjava.net/hjh/comments/301850.html</wfw:comment><comments>http://www.blogjava.net/hjh/archive/2009/11/10/301850.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hjh/comments/commentRss/301850.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hjh/services/trackbacks/301850.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp; 随着网络技术的发展，很多恶意程序往往按照常规方法无法彻底删除。有没有什么方法能够在不安装任何第三方工具的情况下，删除它们呢？笔者经过多年实践，告诉大家一个秘密武器--关闭Explorer进程法。  <p>&nbsp; 在服务器系统出现问题时，例如某个文件无法删除，某个程序假死或者是系统没有响应都可以按CTRL+SHIFT+ESC，调出Windows任务管理器。接下来找到“进程”标签，将“explorer.exe”进程关闭。接下来整个桌面就会消失，只剩下桌布了。然后通过Windows任务管理器的“文件”菜单下的“新建任务（运行）”打开“创建新任务”窗口，通过“浏览”按钮找到要删除文件所在目录，在浏览窗口里直接删除即可。99%都可以将这个顽固的文件删除，删除后继续选择“文件”菜单下的“新建任务（运行）”打开“创建新任务”窗口，在打开处输入命令--explorer后回车，我们将返回到正常的桌面界面下。显然，对付顽固文件，这个方法尤为简单。 </p><img src ="http://www.blogjava.net/hjh/aggbug/301850.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hjh/" target="_blank">不需要解释</a> 2009-11-10 16:19 <a href="http://www.blogjava.net/hjh/archive/2009/11/10/301850.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件开发管理的十条忠告</title><link>http://www.blogjava.net/hjh/archive/2009/11/08/301586.html</link><dc:creator>不需要解释</dc:creator><author>不需要解释</author><pubDate>Sat, 07 Nov 2009 19:10:00 GMT</pubDate><guid>http://www.blogjava.net/hjh/archive/2009/11/08/301586.html</guid><wfw:comment>http://www.blogjava.net/hjh/comments/301586.html</wfw:comment><comments>http://www.blogjava.net/hjh/archive/2009/11/08/301586.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hjh/comments/commentRss/301586.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hjh/services/trackbacks/301586.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp; 1、专注于构建一个强有力的<a href="http://www.csai.cn/incsearch/search.asp?key=%CD%C5%B6%D3">团队</a>，这一团队能够解决困难的问题，并为客户创造真正的价值。 <br>　　2、领导者鼓舞；管理者授权。要同时成为优秀的领导者和管理者，你需要就愿景进行<a href="http://www.csai.cn/incsearch/search.asp?key=%B9%B5%CD%A8">沟通</a>并理解其细节。 <br>　　3、对可能出现的障碍有所准备，防微杜渐，在这些障碍尚未壮大时就清除它们。 <br>　　4、花时间来仔细倾听别人的意见，但不要过于担心其他人的想法。 <br>　　5、专注于事实。 <br>　　6、充当一个衰减器，而不是放大器，为团队提供稳定性。 <br>　　7、永远不要将不能解释的事情归咎为蓄意破坏。 <br>　　8、培养幽默意识来作为严肃认真的一种平衡：对工作一丝不苟，对自己轻松自如。 <br>　　9、除了工作，还应该懂得享受生活，而且每年要读25本书。 <br>　　10、相信你的直觉：如果你感觉不妙，那么很可能预感就会成真。</p><img src ="http://www.blogjava.net/hjh/aggbug/301586.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hjh/" target="_blank">不需要解释</a> 2009-11-08 03:10 <a href="http://www.blogjava.net/hjh/archive/2009/11/08/301586.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ideas of software product</title><link>http://www.blogjava.net/hjh/archive/2009/11/02/300657.html</link><dc:creator>不需要解释</dc:creator><author>不需要解释</author><pubDate>Mon, 02 Nov 2009 03:26:00 GMT</pubDate><guid>http://www.blogjava.net/hjh/archive/2009/11/02/300657.html</guid><wfw:comment>http://www.blogjava.net/hjh/comments/300657.html</wfw:comment><comments>http://www.blogjava.net/hjh/archive/2009/11/02/300657.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hjh/comments/commentRss/300657.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hjh/services/trackbacks/300657.html</trackback:ping><description><![CDATA[<p><b>Productize software</b> <p>When talking about the productized software, people often think of Microsoft Office and Microsoft XP. Of course the Microsoft product series is very successful. They can provide excellent GUI, and good user experience. <p>In China, there is a different picture for software products. Let me take Chinese software development companies for example. Most of the companies in China work on some projects, instead of specific products, When a company starts a new project, they need to invest lots of developers and money into the project. Sometimes, they also need to send a number of technicians to the customer site to do the development. In my opinion, there are two reasons. <p>(1) The software is not very satisfactory enough to be a perfect product. <p>(2) Chinese customers have lots of special requirements. <p>Customer is GOD. We can not change the ideas of customer most of time. So, we need to improve our product. Then how to evaluate a software product's success? Because of various concerns, different users hold different opinions and will arrive at different conclusions. <p>As for redevelopment and customization, the following should be more concerned:  <p><b>(1) </b><b>Software scaffolding</b> <p>If the product provides scaffolding, the redevelopment people will quickly generate code (from database, UML, etc….). As we know, the Spring, Hibernate also provide some scaffolding. <p><b>(2) </b><b>Easy installation package</b> <p>Most of time, the installation gives the first impression to the customer. So it is very important. <p>A simple installation must ensure everyone, even someone not very familiar with the application, can install the software.  <p>The installation log file also plays significant role. Sometimes, it’s possible for the customer’s environment to have some problem so that the installation runs unsuccessfully. In this situation, the customer can send the log file to the technicians for analysis. <p>People who do not know about your product also can install easily according to wizard. <p><b>(3) </b><b>Lots of Examples </b> <p>The examples are the best teacher. Why most of java developer favor apache ant? The reason is that apache ant can provide lots of examples; you can find any task example in apache ant web site.  <p>Example not only provides assistance to the development but also the product redevelopment If your product provides lost of examples, the questions from customers will be reduced substantially. <p><b>(4) </b><b>Online documentation </b> <p>If the developer can find some on-line document, he will not worry about that the document in his hands is an old version. And of course, the product developer also can work more effectively. For example, if the document has some error, or need to be modified, he can fix it quickly.  <p><b>(5) </b><b>Very good support</b> <p>If the customer has some problem when he use or customize, he can get easily the support. <p>As for end-users, the following is very important. <p><b></b> <p><b>(1) </b><b>Friendly GUI, operator easily</b> <p><b>(2) </b><b>Collection client information online active, when some error happen.</b> <p><b>(3) </b><b>Auto-update to new version.</b> <p><b>For customer, he does not need install some patch.</b> <p><b>(4) </b><b>In a conspicuous place clearly marked version of the software, and contact method</b> <p><b></b> <p>As for a kernel developer, he might think we need to provide:  <p><b>(1) </b><b>OSGI framework or plug-in framework to facilitate the expansion</b> <p><b>(2) </b><b>Standard software delivery process </b> <p><b>(3) </b><b>Software quality control</b> <p><b>(4) </b><b>A very good suite of documents.</b></p><img src ="http://www.blogjava.net/hjh/aggbug/300657.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hjh/" target="_blank">不需要解释</a> 2009-11-02 11:26 <a href="http://www.blogjava.net/hjh/archive/2009/11/02/300657.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>maven Repository Configuration</title><link>http://www.blogjava.net/hjh/archive/2009/11/02/300656.html</link><dc:creator>不需要解释</dc:creator><author>不需要解释</author><pubDate>Mon, 02 Nov 2009 03:25:00 GMT</pubDate><guid>http://www.blogjava.net/hjh/archive/2009/11/02/300656.html</guid><wfw:comment>http://www.blogjava.net/hjh/comments/300656.html</wfw:comment><comments>http://www.blogjava.net/hjh/archive/2009/11/02/300656.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hjh/comments/commentRss/300656.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hjh/services/trackbacks/300656.html</trackback:ping><description><![CDATA[<p>Repositories are remote collections of projects from which Maven uses to populate the local repository of the build system. It is from this local repository that Maven calls it plugins and dependencies. Different remote repositories may contain different projects, and under the active profile they may be searched for a matching release or snapshot artifact.  <p><a name="d4e11433"></a> <p><b>Example A.8. Repository Configuration in settings.xml</b><pre>&lt;<b>settings</b> xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
                      http://maven.apache.org/xsd/settings-1.0.0.xsd"&gt;
  ...
  &lt;<b>profiles</b>&gt;
    &lt;<b>profile</b>&gt;
      ...
      &lt;<b>repositories</b>&gt;
        &lt;<b>repository</b>&gt;
          &lt;<b>id</b>&gt;codehausSnapshots&lt;<b>/id</b>&gt;
          &lt;<b>name</b>&gt;Codehaus Snapshots&lt;<b>/name</b>&gt;
          &lt;<b>releases</b>&gt;
            &lt;<b>enabled</b>&gt;false&lt;<b>/enabled</b>&gt;
            &lt;<b>updatePolicy</b>&gt;always&lt;<b>/updatePolicy</b>&gt;
            &lt;<b>checksumPolicy</b>&gt;warn&lt;<b>/checksumPolicy</b>&gt;
          &lt;<b>/releases</b>&gt;
          &lt;<b>snapshots</b>&gt;
            &lt;<b>enabled</b>&gt;true&lt;<b>/enabled</b>&gt;
            &lt;<b>updatePolicy</b>&gt;never&lt;<b>/updatePolicy</b>&gt;
            &lt;<b>checksumPolicy</b>&gt;fail&lt;<b>/checksumPolicy</b>&gt;
          &lt;<b>/snapshots</b>&gt;
          &lt;<b>url</b>&gt;http://snapshots.maven.codehaus.org/maven2&lt;<b>/url</b>&gt;
          &lt;<b>layout</b>&gt;default&lt;<b>/layout</b>&gt;
        &lt;<b>/repository</b>&gt;
      &lt;<b>/repositories</b>&gt;
      &lt;<b>pluginRepositories</b>&gt;
        ...
      &lt;<b>/pluginRepositories</b>&gt;
      ...
    &lt;<b>/profile</b>&gt;
  &lt;<b>/profiles</b>&gt;
  ...
&lt;<b>/settings</b>&gt;
</pre>
<dl>
<dt>releases, snapshots 
<dd>
<p>These are the policies for each type of artifact, Release or snapshot. With these two sets, a <acronym>POM</acronym> has the power to alter the policies for each type independent of the other within a single repository. For example, one may decide to enable only snapshot downloads, possibly for development purposes. 
<p></p>
<dt>enabled 
<dd>
<p><code>true</code> or <code>false</code> for whether this repository is enabled for the respective type (releases or snapshots). 
<p></p>
<dt>updatePolicy 
<dd>
<p>This element specifies how often updates should attempt to occur. Maven will compare the local <acronym>POM</acronym>s timestamp to the remote. The choices are: <code>always</code>, <code>daily</code> (default), <code>interval:X</code> (where X is an integer in minutes) or <code>never</code>. 
<p></p>
<dt>checksumPolicy 
<dd>
<p>When Maven deploys files to the repository, it also deploys corresponding checksum files. Your options are to <code>ignore</code>, <code>fail</code>, or <code>warn</code> on missing or incorrect checksums. 
<p></p>
<dt>layout 
<dd>
<p>In the above description of repositories, it was mentioned that they all follow a common layout. This is mostly correct. Maven 2 has a default layout for its repositories; however, Maven 1.x had a different layout. Use this element to specify which if it is default or legacy. If you are upgrading from Maven 1 to Maven 2, and you want to use the same repository which was used in your Maven 1 build, list the layout as <code>legacy</code></p></dd></dl><img src ="http://www.blogjava.net/hjh/aggbug/300656.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hjh/" target="_blank">不需要解释</a> 2009-11-02 11:25 <a href="http://www.blogjava.net/hjh/archive/2009/11/02/300656.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java obfuscate</title><link>http://www.blogjava.net/hjh/archive/2009/10/19/298790.html</link><dc:creator>不需要解释</dc:creator><author>不需要解释</author><pubDate>Sun, 18 Oct 2009 16:50:00 GMT</pubDate><guid>http://www.blogjava.net/hjh/archive/2009/10/19/298790.html</guid><wfw:comment>http://www.blogjava.net/hjh/comments/298790.html</wfw:comment><comments>http://www.blogjava.net/hjh/archive/2009/10/19/298790.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hjh/comments/commentRss/298790.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hjh/services/trackbacks/298790.html</trackback:ping><description><![CDATA[<p>there are lots tools about the java obfuscate. I know two.</p> <p>(1)proguard</p> <p>(2)yguard</p> <p>the proguard support ant, maven. I use maven as the project and build tools. so I want use the maven proguard plugin, but It is not easy to use. so I use yguard. </p> <p>in your pom.xml, you can&nbsp; add:</p> <p>&nbsp;&nbsp;&nbsp; &lt;plugin&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;groupId&gt;net.sf.mgp&lt;/groupId&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;artifactId&gt;maven-unclasses-plugin&lt;/artifactId&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;version&gt;0.0.2&lt;/version&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/plugin&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;plugin&gt;<br>&nbsp; &lt;artifactId&gt;maven-antrun-plugin&lt;/artifactId&gt;<br>&nbsp; &lt;dependencies&gt;<br>&nbsp;&nbsp;&nbsp; &lt;dependency&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;groupId&gt;yguard&lt;/groupId&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;artifactId&gt;yguard&lt;/artifactId&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;version&gt;2.3.0&lt;/version&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;scope&gt;system&lt;/scope&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;systemPath&gt;lib/yguard.jar&lt;/systemPath&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/dependency&gt;<br>&nbsp; &lt;/dependencies&gt;<br>&nbsp; &lt;executions&gt;<br>&nbsp;&nbsp;&nbsp; &lt;execution&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;phase&gt;package&lt;/phase&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;configuration&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tasks&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property refid="maven.compile.classpath"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name="mvn.classpath"&gt;&lt;/property&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- &lt;echo message="Using Maven Classpath: ${mvn.classpath}" /&gt; --&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;taskdef name="yguard"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; classname="com.yworks.yguard.YGuardTask"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;yguard&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- Input file and output file is the same. --&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;inoutpair<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; in="${project.build.directory}/${project.build.finalName}.${project.packaging}"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out="${project.build.directory}/${project.build.finalName}.jar"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- Obfuscate classes plus string references. --&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;rename<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logfile="${project.build.directory}/yguard.log.xml"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; replaceClassNameStrings="true"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- Keep the only class to be used for easy running and its public method main(). --&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;keep&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;class classes="public" methods="public"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;patternset&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;include name=”xx.xxx.xxx.util.ConnectionUtil"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/patternset&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/class&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/keep&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/rename&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- There are some external libraries used - Maven knows details. --&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;externalclasses&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;pathelement path="${mvn.classpath}"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/externalclasses&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/yguard&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tasks&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/configuration&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;goals&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;goal&gt;run&lt;/goal&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/goals&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/execution&gt;<br>&nbsp; &lt;/executions&gt;<br>&lt;/plugin&gt;  <p><br>It is very cool!!!.</p><img src ="http://www.blogjava.net/hjh/aggbug/298790.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hjh/" target="_blank">不需要解释</a> 2009-10-19 00:50 <a href="http://www.blogjava.net/hjh/archive/2009/10/19/298790.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ResourecBundled cache的讨论</title><link>http://www.blogjava.net/hjh/archive/2009/10/17/298695.html</link><dc:creator>不需要解释</dc:creator><author>不需要解释</author><pubDate>Sat, 17 Oct 2009 09:23:00 GMT</pubDate><guid>http://www.blogjava.net/hjh/archive/2009/10/17/298695.html</guid><wfw:comment>http://www.blogjava.net/hjh/comments/298695.html</wfw:comment><comments>http://www.blogjava.net/hjh/archive/2009/10/17/298695.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hjh/comments/commentRss/298695.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hjh/services/trackbacks/298695.html</trackback:ping><description><![CDATA[<p> 有个大师说过一句话，有人的地方就有江湖，有江湖的地方就有斗争。今天在java eys就看到了一场Resourcebundle引起的口角，集体见:</p> <p><a href="http://www.javaeye.com/topic/6417?page=1">http://www.javaeye.com/topic/6417?page=1</a>.</p> <p>这个问题在jdk1.6已经不存在</p> <h5>clearCache</h5><pre>public static final void <b>clearCache</b>()</pre>
<dl>
<dd>Removes all resource bundles from the cache that have been loaded using the caller's class loader. 
<dd>
<dl>
<dt><b>Since:</b>
<dd>1.6 
<dt><b>See Also:</b>
<dd><a href="http://java.sun.com/java/util/ResourceBundle.Control.html#getTimeToLive(java.lang.String, java.util.Locale)"><code>ResourceBundle.Control.getTimeToLive(String,Locale)</code></a></dd></dl></dd></dl>
<hr>
<a name="clearCache(java.lang.ClassLoader)"></a>
<h5>clearCache</h5><pre>public static final void <b>clearCache</b>(<a href="http://java.sun.com/java/lang/ClassLoader.html">ClassLoader</a> loader)</pre>
<dl>
<dd>Removes all resource bundles from the cache that have been loaded using the given class loader. 
<dd>
<dl>
<dt><b>Parameters:</b>
<dd><code>loader</code> - the class loader 
<dt><b>Throws:</b>
<dd><code><a href="http://java.sun.com/java/lang/NullPointerException.html">NullPointerException</a></code> - if <code>loader</code> is null 
<dt><b>Since:</b>
<dd>1.6 
<dt><b>See Also:</b>
<dd><a href="http://java.sun.com/java/util/ResourceBundle.Control.html#getTimeToLive(java.lang.String, java.util.Locale)"><code>ResourceBundle.Control.getTimeToLive(String,Locale)</code></a></dd></dl></dd></dl>
<p>&nbsp;</p>
<p>在1.5，1.4怎么办呢：</p>
<p>&nbsp;&nbsp; Class klass = ResourceBundle.getBundle("your.Bundle").getClass().getSuperclass();<br>&nbsp;&nbsp; Field field = klass.getDeclaredField("cacheList");<br>&nbsp;&nbsp; field.setAccessible(true);<br>&nbsp;&nbsp; sun.misc.SoftCache cache = (sun.misc.SoftCache)field.get(null);<br>&nbsp;&nbsp; cache.clear();<br>&nbsp;&nbsp; field.setAccessible(false);
<p>这样就可以清楚cache.
<img src ="http://www.blogjava.net/hjh/aggbug/298695.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hjh/" target="_blank">不需要解释</a> 2009-10-17 17:23 <a href="http://www.blogjava.net/hjh/archive/2009/10/17/298695.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>