<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>◇王者之剑◇</title>
    <description>一个喜欢思考的人</description>
    <link>http://albertsong.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>Java程序—如何精简JRE或者生成exe</title>
        <author>王者之剑</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://albertsong.javaeye.com">王者之剑</a>&nbsp;
          链接：<a href="http://albertsong.javaeye.com/blog/200798" style="color:red;">http://albertsong.javaeye.com/blog/200798</a>&nbsp;
          发表时间: 2008年06月06日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>（对不起，这里没有答案。）</p>
<p>时至今日，仍然有人在问这样的问题。</p>
<p>且不说现在100M不到的东西相对于硬盘来说根本不值一提。</p>
<p>JRE允许发布的前提中的一条就是要保持完整性。</p>
<p>&nbsp;</p>
<p>你如果要做一个小的，可执行的Java程序，最好的办法就是自己根据JVM规范写一个。</p>
<p>但是写完以后你会发现小不了，除非你做的连玩具都不是。</p>
<p>&nbsp;</p>
<p>精简JRE还可以说是为了省硬盘，做成exe是为了什么？</p>
<p>&nbsp;</p>
<p>谁知道？</p>
          <br/>
          <span style="color:red;">
            <a href="http://albertsong.javaeye.com/blog/200798#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 06 Jun 2008 10:12:03 +0800</pubDate>
        <link>http://albertsong.javaeye.com/blog/200798</link>
        <guid>http://albertsong.javaeye.com/blog/200798</guid>
      </item>
      <item>
        <title>JavaEye最应该推广的功能</title>
        <author>王者之剑</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://albertsong.javaeye.com">王者之剑</a>&nbsp;
          链接：<a href="http://albertsong.javaeye.com/blog/198757" style="color:red;">http://albertsong.javaeye.com/blog/198757</a>&nbsp;
          发表时间: 2008年05月30日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>因为昨天贴的贴子被从博客首页上拿下来了，于是用tomcat ssl搜了一下，发现速度很快，结果很准。<img src="../../images/smiles/icon_biggrin.gif" alt="" />
</p>
<p>如果先推广这个功能，那就可以最大限度地节约大家的时间，减少垃圾产生。</p>
<p>应该把首页上的搜索栏目加红，提醒大家。</p>
<p>另外，搜索时不能选择知识库，很奇怪。不知是不是通过权重调整了。</p>
<p>&nbsp;</p>
          <br/>
          <span style="color:red;">
            <a href="http://albertsong.javaeye.com/blog/198757#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 30 May 2008 17:21:58 +0800</pubDate>
        <link>http://albertsong.javaeye.com/blog/198757</link>
        <guid>http://albertsong.javaeye.com/blog/198757</guid>
      </item>
      <item>
        <title>终于搞定了Windows下Tomcat Web服务器的SSL配置</title>
        <author>王者之剑</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://albertsong.javaeye.com">王者之剑</a>&nbsp;
          链接：<a href="http://albertsong.javaeye.com/blog/198344" style="color:red;">http://albertsong.javaeye.com/blog/198344</a>&nbsp;
          发表时间: 2008年05月29日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>本文涉及：<br />
1.windows下的OpenSSL安装<br />
2.自己签发根证书<br />
3.用这个根证书来签发服务器证书<br />
4.服务器端证书导入<br />
5.TOMCAT服务器设置<br />
6.客户端根证书安装<br />
本文不涉及：<br />
1.SSL相关的概念及解释<br />
2.购买CA证书<br />
3.双向SSL认证<br />
1.软件准备<br />
&nbsp; 1) jsdk1.5下载 <a href="http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/jdk-1_5_0_15-windows-i586-p.exe?BundledLineItemUUID=skhIBe.l94EAAAEZz_YKv8Xt&amp;OrderID=tzdIBe.l6SoAAAEZxfYKv8Xt&amp;ProductID=9K3ACUFBov0AAAEYe.s5AXuQ&amp;FileName=/jdk-1_5_0_15-windows-i586-p.exe">http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/jdk-1_5_0_15-windows-i586-p.exe?BundledLineItemUUID=skhIBe.l94EAAAEZz_YKv8Xt&amp;OrderID=tzdIBe.l6SoAAAEZxfYKv8Xt&amp;ProductID=9K3ACUFBov0AAAEYe.s5AXuQ&amp;FileName=/jdk-1_5_0_15-windows-i586-p.exe</a>
<br />
&nbsp; 2）tomcat5.5.26下载<a href="http://ftp.kddilabs.jp/infosystems/apache/tomcat/tomcat-5/v5.5.26/bin/apache-tomcat-5.5.26.zip">http://ftp.kddilabs.jp/infosystems/apache/tomcat/tomcat-5/v5.5.26/bin/apache-tomcat-5.5.26.zip</a>
<br />
&nbsp; 3）openssl0.9.7c下载<a href="http://gnuwin32.sourceforge.net/downlinks/openssl-bin.php">http://gnuwin32.sourceforge.net/downlinks/openssl-bin.php</a>
<br />
2.软件安装<br />
&nbsp; 安装（解压）上面下载的软件，假设安装目录如下：<br />
&nbsp; jsdk:&nbsp;&nbsp;&nbsp; C:\jdk1.5.0_15<br />
&nbsp; tomcat:&nbsp; C:\tomcat-5.5.26<br />
&nbsp; openssl: C:\GnuWin32OpenSSL<br />
3.SSL配置<br />
&nbsp; 1）添加windows环境变量JAVA_HOME=C:\jdk1.5.0_15<br />
&nbsp; 运行C:\tomcat-5.5.26\bin\startup.bat，如果能正常启动，说明环境变量设置成功。<br />
&nbsp; 关闭tomcat启动窗口。<br />
&nbsp; 2）建目录C:\ca，用来存放生成的临时文件。<br />
&nbsp; 3）新建文件C:\GnuWin32OpenSSL\bin\openssl.conf，内容如下：<br />
&nbsp;[ req ]<br />
&nbsp;default_bits&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 1024<br />
&nbsp;default_keyfile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = ca-key.pem<br />
&nbsp;distinguished_name&nbsp;&nbsp;&nbsp;&nbsp; = req_distinguished_name<br />
&nbsp;attributes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = req_attributes<br />
&nbsp;prompt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = no<br />
&nbsp;output_password&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = as12345<br />
<br />
&nbsp;[ req_distinguished_name ]<br />
&nbsp;C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = CN<br />
&nbsp;ST&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = Beijing<br />
&nbsp;L&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = Xichengqu<br />
&nbsp;O&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = www.albertsong.com<br />
&nbsp;OU&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = ca.albertsong.com<br />
&nbsp;CN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = Albert Song<br />
&nbsp;emailAddress&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = test@test.com<br />
<br />
&nbsp;[ req_attributes ]<br />
&nbsp;challengePassword&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = as1234567<br />
<br />
<br />
<br />
&nbsp; 新建openssl.conf可参考：http://www.openssl.org/docs/apps/req.html#EXAMPLES<br />
&nbsp;<br />
&nbsp; 4）执行cmd.exe，在命令行窗口执行如下操作：<br />
&nbsp;&nbsp;&nbsp; rem 转到OpenSSL目录<br />
&nbsp;&nbsp;&nbsp; cd C:\GnuWin32OpenSSL\bin<br />
&nbsp;&nbsp;&nbsp; rem 生成CA私钥以及自签名根证书<br />
&nbsp;&nbsp;&nbsp; rem 生成CA私钥<br />
&nbsp;&nbsp;&nbsp; openssl genrsa -out c:\ca\ca-key.pem 1024<br />
&nbsp;&nbsp;&nbsp; rem 生成待签名证书 <br />
&nbsp;&nbsp;&nbsp; openssl req -new -out c:\ca\ca-req.csr -key c:\ca\ca-key.pem -config openssl.conf<br />
&nbsp;&nbsp;&nbsp; rem 用CA私钥进行自签名<br />
&nbsp;&nbsp;&nbsp; openssl x509 -req -in c:\ca\ca-req.csr -out c:\ca\ca-cert.pem -signkey c:\ca\ca-key.pem -days 365<br />
&nbsp;&nbsp;&nbsp; rem 转到java bin目录<br />
&nbsp;&nbsp;&nbsp; cd C:\jdk1.5.0_15\bin<br />
&nbsp;&nbsp;&nbsp; rem 生成server端证书<br />
&nbsp;&nbsp;&nbsp; rem 生成KeyPair，注意keyPass,storepass 要一样<br />
&nbsp;&nbsp;&nbsp;
keytool -genkey -alias blog_albertsong -validity 365 -keyalg RSA
-keysize 1024 -keypass as.1234 -storepass&nbsp;&nbsp; as.1234 -dname
&quot;cn=localhost,ou=department,o=company,l=Beijing,st=Beijing,c=CN&quot;
-keystore c:\ca\albertsong.jks<br />
&nbsp;&nbsp;&nbsp; rem 生成待签名证书<br />
&nbsp;&nbsp;&nbsp; keytool
-certreq -alias blog_albertsong -sigalg MD5withRSA -file
c:\ca\albertsong.csr -keypass as.1234 -keystore c:\ca\albertsong.jks
-storepass as.1234<br />
&nbsp;&nbsp;&nbsp; rem 转到OpenSSL目录<br />
&nbsp;&nbsp;&nbsp; cd C:\GnuWin32OpenSSL\bin<br />
&nbsp;&nbsp;&nbsp; rem 用CA私钥进行签名<br />
&nbsp;&nbsp;&nbsp;
openssl x509 -req -in c:\ca\albertsong.csr -out
c:\ca\albertsong-cert.pem -CA c:\ca\ca-cert.pem -CAkey&nbsp;
c:\ca\ca-key.pem -days 365 -set_serial 1<br />
&nbsp;&nbsp;&nbsp; rem 转到java bin目录<br />
&nbsp;&nbsp;&nbsp; cd C:\jdk1.5.0_15\bin<br />
&nbsp;&nbsp;&nbsp; rem 导入信任的CA根证书到Java的默认位置<br />
&nbsp;&nbsp;&nbsp;
keytool -import -v -trustcacerts -storepass changeit -alias
root_albertsong -file c:\ca\ca-cert.pem -keystore&nbsp;&nbsp;
%JAVA_HOME%\jre\lib\security\cacerts<br />
&nbsp;&nbsp;&nbsp; rem 把CA签名后的server端证书导入keystore<br />
&nbsp;&nbsp;&nbsp; rem 提示时，输入as.1234<br />
&nbsp;&nbsp;&nbsp;
keytool -import -v -trustcacerts -storepass as.1234 -alias
blog_albertsong -file c:\ca\albertsong-cert.pem -keystore
c:\ca\albertsong.jks<br />
&nbsp;&nbsp;&nbsp; rem 查看server端证书<br />
&nbsp;&nbsp;&nbsp; rem 密码分别是changeit, as.1234<br />
&nbsp;&nbsp;&nbsp; keytool -list -keystore %JAVA_HOME%\jre\lib\security\cacerts<br />
&nbsp;&nbsp;&nbsp; keytool -list -keystore c:\ca\albertsong.jks<br />
&nbsp; 5)修改server.xml使Tomcat支持SSL<br />
&nbsp;&nbsp;&nbsp; 在C:\tomcat-5.5.26\conf\server.xml找到<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- Define a SSL HTTP/1.1 Connector on port 8443 --&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;!--<br />
&nbsp;&nbsp;&nbsp; &lt;Connector port=&quot;8443&quot; maxHttpHeaderSize=&quot;8192&quot;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxThreads=&quot;150&quot; minSpareThreads=&quot;25&quot; maxSpareThreads=&quot;75&quot;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; enableLookups=&quot;false&quot; disableUploadTimeout=&quot;true&quot;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acceptCount=&quot;100&quot; scheme=&quot;https&quot; secure=&quot;true&quot;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clientAuth=&quot;false&quot; sslProtocol=&quot;TLS&quot; /&gt;<br />
&nbsp;&nbsp;&nbsp; --&gt;<br />
&nbsp;&nbsp; 改为：<br />
&nbsp;&nbsp; &lt;!-- Define a SSL HTTP/1.1 Connector on port 8443 --&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;Connector port=&quot;8443&quot; maxHttpHeaderSize=&quot;8192&quot;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxThreads=&quot;150&quot; minSpareThreads=&quot;25&quot; maxSpareThreads=&quot;75&quot;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; enableLookups=&quot;false&quot; disableUploadTimeout=&quot;true&quot;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acceptCount=&quot;100&quot; scheme=&quot;https&quot; secure=&quot;true&quot;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clientAuth=&quot;false&quot; sslProtocol=&quot;TLS&quot; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; keystoreFile=&quot;C:\tomcat-5.5.26\conf\albertsong.jks&quot; keystorePass=&quot;as.1234&quot;/&gt;<br />
&nbsp; 6)将C:\ca\albertsong.jks复制到C:\tomcat-5.5.26\conf\下。<br />
&nbsp; 7)Client端安装信任的根证书<br />
&nbsp;&nbsp; 将c:\ca\ca-cert.pem改名为c:\ca\ca-cert.cer，在client端的IE中使用&quot;工具--&gt;Internet选项--&gt;内容--&gt;证书--&gt;导入&quot;把我们生成的CA根证书导入，使其成为用户信任的CA。<br />
&nbsp; 8)用IE浏览器使用SSL协议访问Tomcat<br />
&nbsp;&nbsp;&nbsp; 执行C:\tomcat-5.5.26\bin\startup.bat启动Tomcat<br />
&nbsp;&nbsp;&nbsp; 在IE浏览器的地址栏中输入https://localhost:8443,如果前面的操作都正确的话，应该可以看到Tomcat的欢迎页面。同时状态栏上的小锁处于闭合状态，表示您已经成功地与服务器建立了要求客户端验证的SSL安全连接。<br />
&nbsp; 9)其他<br />
&nbsp;&nbsp; rem 修改keystore的keypass<br />
&nbsp;&nbsp; keytool -alias blog_albertsong -keypasswd -keypass as.1234 -new as.12345 -keystore C:\tomcat-5.5.26\conf\albertsong.jks<br />
&nbsp; 如果要将tomcat安装成服务，可参考http://www.albertsong.com/read-64.html<br />
<br />
参考链接<br />
<a href="http://topic.csdn.net/t/20021205/16/1234396.html" target="_blank">http://topic.csdn.net/t/20021205/16/1234396.html</a><br />
<a href="http://www.openssl.org/docs/apps/req.html" target="_blank">http://www.openssl.org/docs/apps/req.html</a><br />
<a href="http://www.herongyang.com/crypto/OpenSSL_Signing_keytool_CSR_5.html" target="_blank">http://www.herongyang.com/crypto/OpenSSL_Signing_keytool_CSR_5.html</a><br />
<a href="http://gnuwin32.sourceforge.net/packages/openssl.htm" target="_blank">http://gnuwin32.sourceforge.net/packages/openssl.htm</a><br />
<a href="http://www.techscore.com/tech/J2EE/Servlet/11-3.html" target="_blank">http://www.techscore.com/tech/J2EE/Servlet/11-3.html</a><br />
<a href="http://www.jajakarta.org/tomcat/tomcat5.0/ja/docs/tomcat-docs/ssl-howto.html" target="_blank">http://www.jajakarta.org/tomcat/tomcat5.0/ja/docs/tomcat-docs/ssl-howto.html</a><br />
<a href="http://www.daily-labo.com/opensslcnf.txt" target="_blank">http://www.daily-labo.com/opensslcnf.txt</a><br />
<a href="http://www.310f.com/exocet/hiki/?Apache+SSL+on+Windows" target="_blank">http://www.310f.com/exocet/hiki/?Apache+SSL+on+Windows</a><br />
<a href="http://www.ibm.com/developerworks/cn/security/se-tcssl/index.html" target="_blank">http://www.ibm.com/developerworks/cn/security/se-tcssl/index.html</a><br />
<br />
<br />
后记：<br />
虽然是一个简单的问题，也用了我几天的时间，起实质作用的是最后半天。按照这个笔记再来一遍，不过数分钟时间，而且不需要具备任何SSL的相关知识，只要你还能下载到我链接里给出的软件。</p>
<p>&nbsp;</p>
          <br/>
          <span style="color:red;">
            <a href="http://albertsong.javaeye.com/blog/198344#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 29 May 2008 16:27:02 +0800</pubDate>
        <link>http://albertsong.javaeye.com/blog/198344</link>
        <guid>http://albertsong.javaeye.com/blog/198344</guid>
      </item>
      <item>
        <title>用Bouncy Castle实现AES-128-CBC加密解密</title>
        <author>王者之剑</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://albertsong.javaeye.com">王者之剑</a>&nbsp;
          链接：<a href="http://albertsong.javaeye.com/blog/196273" style="color:red;">http://albertsong.javaeye.com/blog/196273</a>&nbsp;
          发表时间: 2008年05月23日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>Bouncy Castle Crypto APIs 是一个开源的轻量级Java 加密解密包，实现了JCE/JCA的provider，支持AES等多种加密解密算法。<br />
详情请见主页：http://www.bouncycastle.org/java.html<br />
本文的示例代码使用了http://www.bouncycastle.org/download/bcprov-jdk16-139.jar<br />
1）使用JCE的AES-128-CBC加密解密</p>
<pre name="code" class="java">package com.albertsong.aes;

import java.security.Key;
import java.security.Security;

import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;

import org.bouncycastle.jce.provider.BouncyCastleProvider;
import org.bouncycastle.util.encoders.Hex;

/**
 * @author Albert
 * @version 1.0
 * 
 */
public class AESWithJCE {

    /**
     * @param args
     */
    public static void main(String[] args) {
        byte[] keybytes = { 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
                0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38 };
        byte[] iv = { 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0x38,
                0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31 };
        String content =&quot;TEST1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ&quot;;
        System.out.println(&quot;Original content:&quot;);
        System.out.println(content);
        try {
            Security.addProvider(new BouncyCastleProvider());
            Key key = new SecretKeySpec(keybytes, &quot;AES&quot;);
            Cipher in = Cipher.getInstance(&quot;AES/CBC/PKCS7Padding&quot;,&quot;BC&quot;);
            in.init(Cipher.ENCRYPT_MODE, key, new IvParameterSpec(iv));
            byte[] enc = in.doFinal(content.getBytes());
            System.out.println(&quot;Encrypted Content:&quot;);
            System.out.println(new String(Hex.encode(enc)));
            
            Cipher out = Cipher.getInstance(&quot;AES/CBC/PKCS7Padding&quot;, &quot;BC&quot;);
            out.init(Cipher.DECRYPT_MODE, key, new IvParameterSpec(iv));
            byte[] dec = out.doFinal(enc);
            System.out.println(&quot;Decrypted Content:&quot;);
            System.out.println(new String(dec));
        } catch (Exception ex) {
            ex.printStackTrace();
        }

    }

}</pre>
<p>&nbsp;2）不使用JCE的AES-128-CBC加密解密，可以用于J2ME程序中。</p>
<pre name="code" class="java">package com.albertsong.aes;

import org.bouncycastle.crypto.BufferedBlockCipher;
import org.bouncycastle.crypto.engines.AESFastEngine;
import org.bouncycastle.crypto.modes.CBCBlockCipher;
import org.bouncycastle.crypto.paddings.PaddedBufferedBlockCipher;
import org.bouncycastle.crypto.params.KeyParameter;
import org.bouncycastle.crypto.params.ParametersWithIV;
import org.bouncycastle.util.encoders.Hex;

/**
 * @author Albert
 * @version 1.0
 *
 */
public class AESWithoutJCE {

    /**
     * @param args
     */
    public static void main(String[] args) {
        byte[] keybytes = { 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
                0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38 };
        byte[] iv = { 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0x38,
                0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31 };
        String content =&quot;TEST1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ&quot;;
        System.out.println(&quot;Original content:&quot;);
        System.out.println(content);
        try {
            BufferedBlockCipher engine = new PaddedBufferedBlockCipher(new CBCBlockCipher(new AESFastEngine()));
            engine.init(true, new ParametersWithIV(new KeyParameter(keybytes),iv));
            byte[] enc = new byte[engine.getOutputSize(content.getBytes().length)];
            int size1 = engine.processBytes(content.getBytes(), 0, content.getBytes().length, enc, 0);
            int size2 = engine.doFinal(enc, size1);
            System.out.println(&quot;size2 =&quot;+size2);
            byte[] encryptedContent =new byte[size1+size2];
            System.arraycopy(enc, 0, encryptedContent, 0, encryptedContent.length);
            System.out.println(&quot;Encrypted Content:&quot;);
            System.out.println(new String(Hex.encode(encryptedContent)));
            
            
            engine.init(false, new ParametersWithIV(new KeyParameter(keybytes),iv));
            byte[] dec = new byte[engine.getOutputSize(encryptedContent.length)];
            size1 = engine.processBytes(encryptedContent, 0, encryptedContent.length, dec, 0);
            size2 = engine.doFinal(dec, size1);
            System.out.println(&quot;size2 =&quot;+size2);
            byte[] decryptedContent =new byte[size1+size2];
            System.arraycopy(dec, 0, decryptedContent, 0, decryptedContent.length);
            System.out.println(&quot;Decrypted Content:&quot;);
            System.out.println(new String(decryptedContent));

        } catch (Exception ex) {
            ex.printStackTrace();
        }

    }

}</pre>
&nbsp;
          <br/>
          <span style="color:red;">
            <a href="http://albertsong.javaeye.com/blog/196273#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 23 May 2008 22:58:33 +0800</pubDate>
        <link>http://albertsong.javaeye.com/blog/196273</link>
        <guid>http://albertsong.javaeye.com/blog/196273</guid>
      </item>
      <item>
        <title>用jar命令将java class文件打包以及编写方便执行jar文件的批处理文件</title>
        <author>王者之剑</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://albertsong.javaeye.com">王者之剑</a>&nbsp;
          链接：<a href="http://albertsong.javaeye.com/blog/195618" style="color:red;">http://albertsong.javaeye.com/blog/195618</a>&nbsp;
          发表时间: 2008年05月22日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>1.jar文件打包<br />
假设需要打包的文件如下：<br />
classes\com\albertsong\MyApp.class<br />
classes\com\albertsong\Aaaa.class<br />
classes\com\albertsong\util\Bbbb.class<br />
(其中MyApp包含main函数）<br />
建一个mymanifest.mf 文件，内容如下：<br />
Main-Class: com.albertsong.MyApp<br />
<br />
<br />
建一个myjar.bat文件，内容如下：<br />
set JAVA_HOME=C:\jsdk1.5.0_09<br />
set PATH=%JAVA_HOME%\bin<br />
set CLASSPATH=%JAVA_HOME%\lib\tools.jar;<br />
jar cvfm MyApp.jar mymanifest.mf&nbsp; -C classes .<br />
<br />
这两个文件都放到和classes同一个目录，即目录结构象下面一样<br />
MyApp\classes\com\albertsong\MyApp.class<br />
MyApp\classes\com\albertsong\Aaaa.class<br />
MyApp\classes\com\albertsong\util\Bbbb.class<br />
MyApp\mymanifest.mf <br />
MyApp\myjar.bat<br />
然后点myjar.bat这个文件执行就可以了：）<br />
<br />
2.执行jar文件<br />
建一个目录MyApp/release。<br />
将生成的MyApp.jar复制到这个目录。<br />
在这个目录里新建一个批处理文件run.bat，内容如下：<br />
set JAVA_HOME=C:\jsdk1.5.0_09<br />
 set PATH=%JAVA_HOME%\bin<br />
 set CLASSPATH=%JAVA_HOME%\lib\tools.jar;<br />
javaw -jar MyApp.jar<br />
<br />
3.其它<br />
&nbsp;&nbsp; 1）jar cvfm MyApp.jar mymanifest.mf&nbsp; -C classes .<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这行命令，最后的<span style="color: #ff0000;">.</span>
<span style="color: #ff00ff;">一定不能掉</span>
，jar命令给出的帮助的例子是<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jar cvfm classes.jar mymanifest -C foo/ .<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 但是在windows下应该改成<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jar cvfm classes.jar mymanifest -C foo<span style="color: #ff0000;">\</span>
 .<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 或者<br />
&nbsp;&nbsp;&nbsp;&nbsp;  jar cvfm classes.jar mymanifest -C foo .<br />
&nbsp;&nbsp; 2）如果应用程序比较大，可能会用到其它的库，这时可以在release目录下建一个lib<br />
&nbsp;&nbsp;&nbsp;&nbsp; 然后在run.bat的CLASSPATH中添加用到的库。<br />
&nbsp;&nbsp;  set CLASSPATH=%JAVA_HOME%\lib\tools.jar;lib\ccc.jar;lib\ddd.jar;<br />
&nbsp;&nbsp;&nbsp; 3)如果要指定java程序使用的内存，这样<br />
&nbsp;&nbsp;&nbsp; javaw -ms100m -mx256m -jar MyApp.jar <br />
&nbsp;&nbsp;&nbsp; 上面指定了使用最小100M最大256M内存。<br />
&nbsp;&nbsp;&nbsp; 4）如果main函数要带参数<br />
&nbsp;&nbsp;&nbsp;  javaw -ms100m -mx256m -jar MyApp.jar&nbsp; arg1 arg2<br />
&nbsp;&nbsp;&nbsp; 5)如果不能在控制台看到有关信息，可以用java来执行jar包<br />
&nbsp;&nbsp;&nbsp; &nbsp;  java -ms100m -mx256m -jar MyApp.jar&nbsp; arg1 arg2<br />
&nbsp;&nbsp;&nbsp;&nbsp; javaw在后台执行。<br />
&nbsp;&nbsp;&nbsp; 6)如果bat文件一闪而过，看不到输出，可以在文件最后一行加上pause，最好的是通过cmd.exe来运行run.bat。<br />
<br />
后记：<br />
&nbsp;&nbsp;&nbsp; 老早以前写过一个，后来丢失了，今天因为忘了点号和反斜杠的问题，又浪费不少时间。</p>
          <br/>
          <span style="color:red;">
            <a href="http://albertsong.javaeye.com/blog/195618#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 22 May 2008 13:07:29 +0800</pubDate>
        <link>http://albertsong.javaeye.com/blog/195618</link>
        <guid>http://albertsong.javaeye.com/blog/195618</guid>
      </item>
      <item>
        <title>不要把简单的事情搞得n复杂</title>
        <author>王者之剑</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://albertsong.javaeye.com">王者之剑</a>&nbsp;
          链接：<a href="http://albertsong.javaeye.com/blog/49493" style="color:red;">http://albertsong.javaeye.com/blog/49493</a>&nbsp;
          发表时间: 2007年01月23日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>经常看到写得很长很长很乱麻很乱麻的程序， 会让人有一种痛不欲生的感觉。</p>
<p>觉得程序员真他妈太好混了。</p>
<p>&nbsp;</p>
          <br/>
          <span style="color:red;">
            <a href="http://albertsong.javaeye.com/blog/49493#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 23 Jan 2007 15:59:58 +0800</pubDate>
        <link>http://albertsong.javaeye.com/blog/49493</link>
        <guid>http://albertsong.javaeye.com/blog/49493</guid>
      </item>
      <item>
        <title>坚决放弃Hibernate</title>
        <author>王者之剑</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://albertsong.javaeye.com">王者之剑</a>&nbsp;
          链接：<a href="http://albertsong.javaeye.com/blog/44417" style="color:red;">http://albertsong.javaeye.com/blog/44417</a>&nbsp;
          发表时间: 2007年01月08日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          现在的一个小项目用Hibernate已经让我觉得很不爽了。
第一次用Hibernate，手册看了一遍。
项目目前已经完成了三分之一，但是越用越不爽。准备改用iBatis，iBatis不能实现的自己再改写。
          <br/>
          <span style="color:red;">
            <a href="http://albertsong.javaeye.com/blog/44417#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 08 Jan 2007 16:45:25 +0800</pubDate>
        <link>http://albertsong.javaeye.com/blog/44417</link>
        <guid>http://albertsong.javaeye.com/blog/44417</guid>
      </item>
      <item>
        <title>也说说WEB2.0</title>
        <author>王者之剑</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://albertsong.javaeye.com">王者之剑</a>&nbsp;
          链接：<a href="http://albertsong.javaeye.com/blog/39651" style="color:red;">http://albertsong.javaeye.com/blog/39651</a>&nbsp;
          发表时间: 2006年12月20日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 最近似乎很多WEB2.0的网站据说要倒掉了，对于此，我并不感到奇怪，对于广大的网民仅仅炒一个概念，不死才怪，尤其是在人们不是靠消费概念生活的时候。<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 说实话，我到今天也不知道WEB2.0是个什么东西，这么说吧，在网络上做点事情，挣一点钱，或者想挣一大笔钱，和几点零有关系吗？做对用户来说有用，好用的网站，并且收费，这才是正道。<br />
&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; 其他的自称WEB2.0的我用的不多，用的比较多的是blog。我在用了数个blog以后，不得不自建了一个。新版的javaeye是我目前唯一打算继续用下去的一个。 作为用户，我才不管你的版本是几点零，用得不爽，你吹得越多，老子越烦。大家可以拿javaeye的博客和他们比较一下。不过JavaEye也缺少我一直想要的一个功能，那就是将博客文章生成html，压缩后下载回来，能生成chm文档就更好了。        <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 人不能太自私，这些人首先就是基于自私的出发点去思考任何问题。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 建议javaeye在网文交换格式上多走一步（目前只是导出rss)，提供一个标准并公布，并生成可解析的文件，以利他人随时离开javaeye，大家猜猜，如果这样javaeye会怎样？        <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 为什么说blog可以收费？对于我来说，我买的一个很小的空间，一年也要150，如果javaeye提供的功能可以让我满意，我为什么不愿意出150或更多？如果你连一个很好的导出功能都不提供，哪一天我要一日三餐都成问题了或者说一日三餐不成问题，但写blog成问题了，我连留下一点回忆都不行。哦，你说可以，一可以自己一页页的去复制，二可以用webzip之类的软件，再说，如果你不是SB的话，你写blog应该留底了才对呀？日，还好是免费的，这或许是这些web2.0博客留给用户唯一的自慰剂吧。<br />
&nbsp; &nbsp; &nbsp; &nbsp; 其他的web2.0我不好说，博客其实我也说不好，我只想说，垃圾网站他妈的赶快死掉，浪费我上网时间，每次一google，几乎找不到什么有用的信息，几年前可不是这样。
          <br/>
          <span style="color:red;">
            <a href="http://albertsong.javaeye.com/blog/39651#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 20 Dec 2006 09:08:35 +0800</pubDate>
        <link>http://albertsong.javaeye.com/blog/39651</link>
        <guid>http://albertsong.javaeye.com/blog/39651</guid>
      </item>
      <item>
        <title>javaeye2.0真的不错</title>
        <author>王者之剑</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://albertsong.javaeye.com">王者之剑</a>&nbsp;
          链接：<a href="http://albertsong.javaeye.com/blog/33311" style="color:red;">http://albertsong.javaeye.com/blog/33311</a>&nbsp;
          发表时间: 2006年11月09日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          虽然有一些bug，但是bug是可以解决的<br />如果一个落后的东西，就算没有bug，那又有什么价值？<br />创新，不仅仅是一个名词。
          <br/>
          <span style="color:red;">
            <a href="http://albertsong.javaeye.com/blog/33311#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 09 Nov 2006 09:47:11 +0800</pubDate>
        <link>http://albertsong.javaeye.com/blog/33311</link>
        <guid>http://albertsong.javaeye.com/blog/33311</guid>
      </item>
  </channel>
</rss>