<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ursob &#187; Java</title>
	<atom:link href="http://ursob.org/tag/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://ursob.org</link>
	<description>Code &#38;&#38; Riff</description>
	<lastBuildDate>Thu, 29 Jul 2010 09:37:57 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>NetBeans字体显示</title>
		<link>http://ursob.org/2010/05/13/netbeans_fonts/</link>
		<comments>http://ursob.org/2010/05/13/netbeans_fonts/#comments</comments>
		<pubDate>Thu, 13 May 2010 14:35:46 +0000</pubDate>
		<dc:creator>MoistRot</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://ursob.org/?p=363</guid>
		<description><![CDATA[一直没有弄好netbeans下面字体显示的锯齿问题。昨天查了下G大神，很轻松的搞定了]]></description>
			<content:encoded><![CDATA[<p>一直没有弄好netbeans下面字体显示的锯齿问题。昨天查了下G大神，很轻松的搞定了。只需要一行代码（这种方法是作用于JRE全局的，就是所有用到JRE的程序都会开启这个字体渲染，当然也可以在NB的配置文件中单独开启字体渲染）。<br />
在JDK系统配置中加上一行开启渲染参数，这个参数我知道有三个可选值。</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:Courier New, Courier;"><span style="color: #666666; font-style: italic;">#首先打开系统配置文件(需要root身份)</span>
<span style="color: #c20cb9; font-weight: bold;">vim</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>profile
<span style="color: #666666; font-style: italic;">#如果进行过JAVA环境变量配置，则在环境变量配置后面加上这样一行</span>
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">_JAVA_OPTIONS</span>=<span style="color: #ff0000;">'-Dawt.useSystemAAFontSettings=lcd'</span>
<span style="color: #666666; font-style: italic;">#lcd也可为“on&quot;</span></pre></div></div>

<p>完成后，重启X，我使用source /etc/profile 不起作用。</p>
<p><a title="Image Title" rel="lightbox" href="http://ursob.org/wp-content/uploads/2010/05/Screenshot-Chess-NetBeans-IDE-6.9-Beta.png"><img src="http://ursob.org/wp-content/uploads/2010/05/Screenshot-Chess-NetBeans-IDE-6.9-Beta-300x187.png" alt="NetBeans IDE 6.9 Beta" title="NetBeans IDE 6.9 Beta" width="300" height="187" class="size-medium wp-image-364" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://ursob.org/2010/05/13/netbeans_fonts/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Java的Split&#8221;.&#8221;</title>
		<link>http://ursob.org/2010/05/12/javasplit/</link>
		<comments>http://ursob.org/2010/05/12/javasplit/#comments</comments>
		<pubDate>Wed, 12 May 2010 08:09:31 +0000</pubDate>
		<dc:creator>MoistRot</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://ursob.org/?p=351</guid>
		<description><![CDATA[字符串中含有&#8220;.&#8221;，且需要对其进行分割。下面语句得到的结果为空数组。

String s&#91;&#93; = str.split&#40;&#34;.&#34;&#41;;

必须经过转义之后才可以进行正常分割，所以应该写成：

String s&#91;&#93; = str.split&#40;&#34;\\.&#34;&#41;;

]]></description>
			<content:encoded><![CDATA[<p>字符串中含有<em>&#8220;.&#8221;</em>，且需要对其进行分割。下面语句得到的结果为空数组。</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:Courier New, Courier;"><span style="color: #003399;">String</span> s<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> str.<span style="color: #006633;">split</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>必须经过转义之后才可以进行正常分割，所以应该写成：</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:Courier New, Courier;"><span style="color: #003399;">String</span> s<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> str.<span style="color: #006633;">split</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\\</span>.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://ursob.org/2010/05/12/javasplit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>argument type mismatch 解决方法</title>
		<link>http://ursob.org/2010/05/11/argument-type-mismatch/</link>
		<comments>http://ursob.org/2010/05/11/argument-type-mismatch/#comments</comments>
		<pubDate>Tue, 11 May 2010 06:16:06 +0000</pubDate>
		<dc:creator>MoistRot</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://ursob.org/?p=337</guid>
		<description><![CDATA[在Struts中，
当输入页面中含有日期字符串时，如果Form中对于的字段为Date类型，则会出现“argument type mismatch”错误。
原因：
Struts的ActionServlet在接受到页面的请求后，会调用RequestUtils.populate方法对Form进行填值，而此方法又调用到BeanUtils.populate方法，而该方法进行填值时对不同类型的会进行转换，而默认的ActionServlet并没有注册相应的转换函数，所以会导致转换出现错误。
解决方法：


方法1：
Form中的日期使用String类型，在Action中自己处理String到Date的类型转换。


方法2：Form中使用java.util.Date类型，自定义一个日期转换类DateConverter（需要实现Converter接口），然后在自定义的ActionServlet或者Action基类中注册DateConverter：ConvertUtils.register(new DateConverter(), Date.class)。


看了下commons-beanutils的源码发现：BeanUtilsBean含有一个beansByClassLoader静态常量，加载时会初始化一个BeanUtilsBean实例，每次调用getInstance方法返回的都是同一个BeanUtilsBean实例。所以可以在任意地方注册 DateConverter，但要确保在调用BeanUtils.populate方法前已经注册DateConverter，所以应该可以在一个初始化的Servlet中注册,或者在Form类里面静态注册。
下面是DateConverter.java

/* @(#) DateConverter.java			2010-5-11
 * 
 * Copyright (c) 2002-2010 Maxtech, Inc.
 * 66 ZhongGuanCun East Road, BeiJing, 100086, China
 * All rights reserved.
 * 
 * This software is the confidential and proprietary information of
 * Maxtech, Inc. (&#34;Confidential Information&#34;). You shall not
 * disclose such Confidential Information and shall [...]]]></description>
			<content:encoded><![CDATA[<p>在Struts中，<br />
当输入页面中含有日期字符串时，如果Form中对于的字段为Date类型，则会出现“argument type mismatch”错误。</p>
<p>原因：<br />
Struts的ActionServlet在接受到页面的请求后，会调用RequestUtils.populate方法对Form进行填值，而此方法又调用到BeanUtils.populate方法，而该方法进行填值时对不同类型的会进行转换，而默认的ActionServlet并没有注册相应的转换函数，所以会导致转换出现错误。</p>
<p>解决方法：</p>
<ul>
<li>
方法1：<br />
Form中的日期使用String类型，在Action中自己处理String到Date的类型转换。
</li>
<li>
方法2：Form中使用java.util.Date类型，自定义一个日期转换类DateConverter（需要实现Converter接口），然后在自定义的ActionServlet或者Action基类中注册DateConverter：ConvertUtils.register(new DateConverter(), Date.class)。
</li>
</ul>
<p>看了下commons-beanutils的源码发现：BeanUtilsBean含有一个beansByClassLoader静态常量，加载时会初始化一个BeanUtilsBean实例，每次调用getInstance方法返回的都是同一个BeanUtilsBean实例。所以可以在任意地方注册 DateConverter，但要确保在调用BeanUtils.populate方法前已经注册DateConverter，所以应该可以在一个初始化的Servlet中注册,或者在Form类里面静态注册。</p>
<p>下面是DateConverter.java</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:Courier New, Courier;"><span style="color: #666666; font-style: italic;">/* @(#) DateConverter.java			2010-5-11
 * 
 * Copyright (c) 2002-2010 Maxtech, Inc.
 * 66 ZhongGuanCun East Road, BeiJing, 100086, China
 * All rights reserved.
 * 
 * This software is the confidential and proprietary information of
 * Maxtech, Inc. (&quot;Confidential Information&quot;). You shall not
 * disclose such Confidential Information and shall use it only in
 * accordance with the terms of the license agreement you entered into
 * with Maxtech.
 * 
 */</span>
<span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">cn.com.maxtech.util</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.text.ParseException</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.text.SimpleDateFormat</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.HashSet</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.Iterator</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.Set</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.commons.beanutils.Converter</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
<span style="color: #008000; font-style: italic; font-weight: bold;">/**
 * @TODO
 * @author liufei
 */</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> DateConverter <span style="color: #000000; font-weight: bold;">implements</span> Converter <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #008000; font-style: italic; font-weight: bold;">/**
     * 日期格式化对象.
     */</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #003399;">SimpleDateFormat</span> df <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">SimpleDateFormat</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #008000; font-style: italic; font-weight: bold;">/**
     * 模式集合.
     */</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">static</span> Set<span style="color: #339933;">&lt;</span>String<span style="color: #339933;">&gt;</span> patterns <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> HashSet<span style="color: #339933;">&lt;</span>String<span style="color: #339933;">&gt;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">static</span><span style="color: #009900;">&#123;</span>
        DateConverter.<span style="color: #006633;">patterns</span>.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;yyyy-MM-dd&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        DateConverter.<span style="color: #006633;">patterns</span>.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;yyyy-MM-dd HH:mm&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        DateConverter.<span style="color: #006633;">patterns</span>.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;yyyy-MM-dd HH:mm:ss&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        DateConverter.<span style="color: #006633;">patterns</span>.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;yyyy/MM/dd HH:mm:ss&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #008000; font-style: italic; font-weight: bold;">/**
     * 日期转换器.
     * @param type Class
     * @param value Object
     * return Date Object.
     */</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">Object</span> convert<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">Class</span> type,<span style="color: #003399;">Object</span> value<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>value <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #000000; font-weight: bold;">else</span> <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>value <span style="color: #000000; font-weight: bold;">instanceof</span> <span style="color: #003399;">String</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #003399;">Object</span> dateObj <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
            <span style="color: #003399;">Iterator</span> it <span style="color: #339933;">=</span> patterns.<span style="color: #006633;">iterator</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>it.<span style="color: #006633;">hasNext</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                <span style="color: #000000; font-weight: bold;">try</span><span style="color: #009900;">&#123;</span>
                    <span style="color: #003399;">String</span> pattern <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span><span style="color: #009900;">&#41;</span>it.<span style="color: #006633;">next</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    df.<span style="color: #006633;">applyPattern</span><span style="color: #009900;">&#40;</span>pattern<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    dateObj <span style="color: #339933;">=</span> df.<span style="color: #006633;">parse</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span><span style="color: #009900;">&#41;</span>value<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span><span style="color: #000000; font-weight: bold;">catch</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">ParseException</span> ex<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
                <span style="color: #009900;">&#125;</span>
            <span style="color: #009900;">&#125;</span>
            <span style="color: #000000; font-weight: bold;">return</span> dateObj<span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #000000; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
            <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>可以在Action中注册，例如：</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:Courier New, Courier;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> DateAction <span style="color: #000000; font-weight: bold;">extends</span> StrutsAction <span style="color: #009900;">&#123;</span>
.....
      <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #009900;">&#123;</span>
		ConvertUtils.<span style="color: #006633;">register</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> DateConverter<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>, <span style="color: #003399;">Date</span>.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
.....
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>或者Form内：</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:Courier New, Courier;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> DateForm <span style="color: #000000; font-weight: bold;">extends</span> ActionForm <span style="color: #009900;">&#123;</span>
......
 <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #009900;">&#123;</span>
		ConvertUtils.<span style="color: #006633;">register</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> DateConverter<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>, <span style="color: #003399;">Date</span>.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
......
<span style="color: #009900;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://ursob.org/2010/05/11/argument-type-mismatch/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Myeclipse打开struts配置文件时报错解决办法</title>
		<link>http://ursob.org/2009/10/11/myeclipse-struts-config/</link>
		<comments>http://ursob.org/2009/10/11/myeclipse-struts-config/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 03:20:28 +0000</pubDate>
		<dc:creator>ripflowers</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[MyEclipse]]></category>
		<category><![CDATA[Struts]]></category>

		<guid isPermaLink="false">http://ursob.org/?p=192</guid>
		<description><![CDATA[我的Myeclipse版本是6.0，在打开struts配置文件的时候总是报一些错误，修改打开方式也不是很灵，下边介绍一下解决的办法。]]></description>
			<content:encoded><![CDATA[<p>我的Myeclipse版本是6.0，在打开struts配置文件的时候总是报一些错误，修改打开方式也不是很灵，下边介绍一下解决的办法。<br />
错误如下：<br />
<div id="attachment_193" class="wp-caption alignnone" style="width: 630px"><img src="http://ursob.org/wp-content/uploads/2009/10/myeclipse_error.jpg" alt="myeclipse报错" title="myeclipse_error" width="620" height="401" class="size-full wp-image-193" /><p class="wp-caption-text">myeclipse报错</p></div><br />
解决办法：<br />
打开项目中的.project文件，在<natures>节点下添加一个<nature>节点，内容如下：</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:Courier New, Courier;"><span style="color: #ddbb00;">&amp;lt;</span>nature<span style="color: #ddbb00;">&amp;gt;</span>
com.genuitec.eclipse.cross.easystruts.eclipse.easystrutsnature
<span style="color: #ddbb00;">&amp;lt;</span>/nature<span style="color: #ddbb00;">&amp;gt;</span></pre></div></div>

<p>保存之后，问题即可解决，当在打开配置文件的时候会提示你生成一个.mex文件，这个文件是struts配置文件编辑器中Design试图中要用到的，点击Ok。</p>
]]></content:encoded>
			<wfw:commentRss>http://ursob.org/2009/10/11/myeclipse-struts-config/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java文件压缩下载</title>
		<link>http://ursob.org/2009/09/25/struts-packaging-download/</link>
		<comments>http://ursob.org/2009/09/25/struts-packaging-download/#comments</comments>
		<pubDate>Fri, 25 Sep 2009 07:25:15 +0000</pubDate>
		<dc:creator>ripflowers</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Others]]></category>
		<category><![CDATA[ant]]></category>
		<category><![CDATA[javaWeb]]></category>
		<category><![CDATA[java文件压缩]]></category>
		<category><![CDATA[Struts]]></category>

		<guid isPermaLink="false">http://ursob.org/?p=120</guid>
		<description><![CDATA[上文书中说到struts的文件批量上传，接下来总结一下java中文件的压缩下载功能，既把文件打成压缩包然后下载，实现中使用了org.apache.tools.zip.ZipEntry以及org.apache.tools.zip.ZipOutputStream这两个主要的类，所以你的项目中必须引入ant.jar这个包，java中也自带了关于压缩文件操作的类，但之所以不用java自带的，是因为ant.jar中的操作类解决了文件名是中文的问题，也就是说java自带的那个类在处理中文名文件的时候会抛出异常，现在的版本只支持文件的打包，还不支持文件目录的打包。这里的文件压缩功能是针对java Web开发的，最重要的是解决的思路，有了思路就到那都可以解决了。]]></description>
			<content:encoded><![CDATA[<p>承接上文，上文书中说到struts的文件批量上传，接下来总结一下java中文件的压缩下载功能，既把文件打成压缩包然后下载，实现中使用了org.apache.tools.zip.ZipEntry以及org.apache.tools.zip.ZipOutputStream这两个主要的类，所以你的项目中必须引入ant.jar这个包，java中也自带了关于压缩文件操作的类，但之所以不用java自带的，是因为ant.jar中的操作类解决了文件名是中文的问题，也就是说java自带的那个类在处理中文名文件的时候会抛出异常，现在的版本只支持文件的打包，还不支持文件目录的打包。这里的文件压缩功能是针对java Web开发的，最重要的是解决的思路，有了思路就到那都可以解决了。<br />
还是用代码来说话，代码中会嵌入一些注释。</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:Courier New, Courier;"><span style="color: #66cc66;">//</span>文件打包下载
public ActionForward downLoadFiles<span style="color: #66cc66;">&#40;</span>ActionMapping mapping<span style="color: #66cc66;">,</span> ActionForm form<span style="color: #66cc66;">,</span>
		HttpServletRequest request<span style="color: #66cc66;">,</span> HttpServletResponse response<span style="color: #66cc66;">&#41;</span>
		throws Exception <span style="color: #66cc66;">&#123;</span>
	try <span style="color: #66cc66;">&#123;</span>
		<span style="color: #808080; font-style: italic;">/**这个集合就是你想要打包的所有文件，
		 * 这里假设已经准备好了所要打包的文件*/</span>
		List<span style="color: #66cc66;">&lt;</span>File<span style="color: #66cc66;">&gt;</span> files <span style="color: #66cc66;">=</span> new ArrayList<span style="color: #66cc66;">&lt;</span>File<span style="color: #66cc66;">&gt;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #808080; font-style: italic;">/**创建一个临时压缩文件，
		 * 我们会把文件流全部注入到这个文件中
		 * 这里的文件你可以自定义是.rar还是.zip*/</span>
		File file <span style="color: #66cc66;">=</span> new File<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;yourPath.rar&quot;</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #66cc66;">&#40;</span>!file<span style="color: #66cc66;">.</span><span style="color: #993333; font-weight: bold;">EXISTS</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>   
            file<span style="color: #66cc66;">.</span>createNewFile<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;   
        <span style="color: #66cc66;">&#125;</span>
        <span style="color: #808080; font-style: italic;">/**要是弹出那个下载的框，
         * 就必须有下边这两项的设置了*/</span>
        response<span style="color: #66cc66;">.</span>addHeader<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Content-Disposition&quot;</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">&quot;attachment; filename=&quot;</span>
				<span style="color: #66cc66;">+</span> new String<span style="color: #66cc66;">&#40;</span>file<span style="color: #66cc66;">.</span>getName<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">.</span>getBytes<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">&quot;iso-8859-1&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
		response<span style="color: #66cc66;">.</span>setContentType<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;application/octet-stream&quot;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">//</span>创建文件输出流
        FileOutputStream fous <span style="color: #66cc66;">=</span> new FileOutputStream<span style="color: #66cc66;">&#40;</span>file<span style="color: #66cc66;">&#41;</span>;   
        <span style="color: #808080; font-style: italic;">/**打包的方法我们会用到ZipOutputStream这样一个输出流,
         * 所以这里我们把输出流转换一下*/</span>
        org<span style="color: #66cc66;">.</span>apache<span style="color: #66cc66;">.</span>tools<span style="color: #66cc66;">.</span>zip<span style="color: #66cc66;">.</span>ZipOutputStream zipOut 
        	<span style="color: #66cc66;">=</span> new org<span style="color: #66cc66;">.</span>apache<span style="color: #66cc66;">.</span>tools<span style="color: #66cc66;">.</span>zip<span style="color: #66cc66;">.</span>ZipOutputStream<span style="color: #66cc66;">&#40;</span>fous<span style="color: #66cc66;">&#41;</span>;
        <span style="color: #808080; font-style: italic;">/**这个方法接受的就是一个所要打包文件的集合，
         * 还有一个ZipOutputStream*/</span>
        FileUtil<span style="color: #66cc66;">.</span>zipFile<span style="color: #66cc66;">&#40;</span>files<span style="color: #66cc66;">,</span> zipOut<span style="color: #66cc66;">&#41;</span>;
        zipOut<span style="color: #66cc66;">.</span>close<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
        fous<span style="color: #66cc66;">.</span>close<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #808080; font-style: italic;">/**直到文件的打包已经成功了，
         * 文件的打包过程被我封装在FileUtil.zipFile这个静态方法中，
         * 稍后会呈现出来，接下来的就是往客户端写数据了*/</span>
        OutputStream out <span style="color: #66cc66;">=</span> response<span style="color: #66cc66;">.</span>getOutputStream<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
        BufferedInputStream bin <span style="color: #66cc66;">=</span> new 
        BufferedInputStream<span style="color: #66cc66;">&#40;</span>new FileInputStream<span style="color: #66cc66;">&#40;</span>file<span style="color: #66cc66;">.</span>getPath<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
        byte<span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span> buf <span style="color: #66cc66;">=</span> new byte<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">1024</span><span style="color: #66cc66;">&#93;</span>;
        int len <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0</span>;
        while<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>len <span style="color: #66cc66;">=</span> bin<span style="color: #66cc66;">.</span><span style="color: #993333; font-weight: bold;">READ</span><span style="color: #66cc66;">&#40;</span>buf<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span> 
        out<span style="color: #66cc66;">.</span><span style="color: #993333; font-weight: bold;">WRITE</span><span style="color: #66cc66;">&#40;</span>buf<span style="color: #66cc66;">,</span><span style="color: #cc66cc;">0</span><span style="color: #66cc66;">,</span>len<span style="color: #66cc66;">&#41;</span>;
        out<span style="color: #66cc66;">.</span>close<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
        bin<span style="color: #66cc66;">.</span>close<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #808080; font-style: italic;">/**最后的操作是把创建的临时文件删除*/</span>
        try <span style="color: #66cc66;">&#123;</span>
        	File f <span style="color: #66cc66;">=</span> new File<span style="color: #66cc66;">&#40;</span>file<span style="color: #66cc66;">.</span>getPath<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
        	f<span style="color: #66cc66;">.</span><span style="color: #993333; font-weight: bold;">DELETE</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span> catch <span style="color: #66cc66;">&#40;</span>Exception e<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
			e<span style="color: #66cc66;">.</span>printStackTrace<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span> catch <span style="color: #66cc66;">&#40;</span>Exception e<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
		e<span style="color: #66cc66;">.</span>printStackTrace<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #993333; font-weight: bold;">RETURN</span> <span style="color: #993333; font-weight: bold;">NULL</span>;
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
    <span style="color: #993333; font-weight: bold;">RETURN</span> <span style="color: #993333; font-weight: bold;">NULL</span>;
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>下边是FileUtil中的生成rar或者是zip文件的方法：</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:Courier New, Courier;"><span style="color: #808080; font-style: italic;">/**
 * 把接受的全部文件打成压缩包 
 * @param List&lt;File&gt;;  
 * @param org.apache.tools.zip.ZipOutputStream  
 */</span>
public static void zipFile
		<span style="color: #66cc66;">&#40;</span>List files<span style="color: #66cc66;">,</span>org<span style="color: #66cc66;">.</span>apache<span style="color: #66cc66;">.</span>tools<span style="color: #66cc66;">.</span>zip<span style="color: #66cc66;">.</span>ZipOutputStream outputStream<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
	int size <span style="color: #66cc66;">=</span> files<span style="color: #66cc66;">.</span>size<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #993333; font-weight: bold;">FOR</span> <span style="color: #66cc66;">&#40;</span>int i <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0</span>; i <span style="color: #66cc66;">&lt;</span> size; i<span style="color: #66cc66;">++</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
		File file <span style="color: #66cc66;">=</span> <span style="color: #66cc66;">&#40;</span>File<span style="color: #66cc66;">&#41;</span> files<span style="color: #66cc66;">.</span>get<span style="color: #66cc66;">&#40;</span>i<span style="color: #66cc66;">&#41;</span>;
		zipFile<span style="color: #66cc66;">&#40;</span>file<span style="color: #66cc66;">,</span> outputStream<span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span>
<span style="color: #808080; font-style: italic;">/**  
 * 根据输入的文件与输出流对文件进行打包
 * @param File
 * @param org.apache.tools.zip.ZipOutputStream
 */</span>
public static void zipFile<span style="color: #66cc66;">&#40;</span>File inputFile<span style="color: #66cc66;">,</span>
		org<span style="color: #66cc66;">.</span>apache<span style="color: #66cc66;">.</span>tools<span style="color: #66cc66;">.</span>zip<span style="color: #66cc66;">.</span>ZipOutputStream ouputStream<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
	try <span style="color: #66cc66;">&#123;</span>
		<span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #66cc66;">&#40;</span>inputFile<span style="color: #66cc66;">.</span><span style="color: #993333; font-weight: bold;">EXISTS</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
			<span style="color: #808080; font-style: italic;">/**如果是目录的话这里是不采取操作的，
			 * 至于目录的打包正在研究中*/</span>
			<span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #66cc66;">&#40;</span>inputFile<span style="color: #66cc66;">.</span>isFile<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
				FileInputStream <span style="color: #993333; font-weight: bold;">IN</span> <span style="color: #66cc66;">=</span> new FileInputStream<span style="color: #66cc66;">&#40;</span>inputFile<span style="color: #66cc66;">&#41;</span>;
				BufferedInputStream bins <span style="color: #66cc66;">=</span> new BufferedInputStream<span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">IN</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">512</span><span style="color: #66cc66;">&#41;</span>;
				<span style="color: #66cc66;">//</span>org<span style="color: #66cc66;">.</span>apache<span style="color: #66cc66;">.</span>tools<span style="color: #66cc66;">.</span>zip<span style="color: #66cc66;">.</span>ZipEntry
				ZipEntry entry <span style="color: #66cc66;">=</span> new ZipEntry<span style="color: #66cc66;">&#40;</span>inputFile<span style="color: #66cc66;">.</span>getName<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
				ouputStream<span style="color: #66cc66;">.</span>putNextEntry<span style="color: #66cc66;">&#40;</span>entry<span style="color: #66cc66;">&#41;</span>;
				<span style="color: #66cc66;">//</span> 向压缩文件中输出数据   
				int nNumber;
				byte<span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span> buffer <span style="color: #66cc66;">=</span> new byte<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">512</span><span style="color: #66cc66;">&#93;</span>;
				while <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>nNumber <span style="color: #66cc66;">=</span> bins<span style="color: #66cc66;">.</span><span style="color: #993333; font-weight: bold;">READ</span><span style="color: #66cc66;">&#40;</span>buffer<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> !<span style="color: #66cc66;">=</span> <span style="color: #66cc66;">-</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
					ouputStream<span style="color: #66cc66;">.</span><span style="color: #993333; font-weight: bold;">WRITE</span><span style="color: #66cc66;">&#40;</span>buffer<span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">,</span> nNumber<span style="color: #66cc66;">&#41;</span>;
				<span style="color: #66cc66;">&#125;</span>
				<span style="color: #66cc66;">//</span> 关闭创建的流对象   
				bins<span style="color: #66cc66;">.</span>close<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
				<span style="color: #993333; font-weight: bold;">IN</span><span style="color: #66cc66;">.</span>close<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #66cc66;">&#125;</span> else <span style="color: #66cc66;">&#123;</span>
				try <span style="color: #66cc66;">&#123;</span>
					File<span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span> files <span style="color: #66cc66;">=</span> inputFile<span style="color: #66cc66;">.</span>listFiles<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
					<span style="color: #993333; font-weight: bold;">FOR</span> <span style="color: #66cc66;">&#40;</span>int i <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0</span>; i <span style="color: #66cc66;">&lt;</span> files<span style="color: #66cc66;">.</span>length; i<span style="color: #66cc66;">++</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
						zipFile<span style="color: #66cc66;">&#40;</span>files<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">,</span> ouputStream<span style="color: #66cc66;">&#41;</span>;
					<span style="color: #66cc66;">&#125;</span>
				<span style="color: #66cc66;">&#125;</span> catch <span style="color: #66cc66;">&#40;</span>Exception e<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
					e<span style="color: #66cc66;">.</span>printStackTrace<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
				<span style="color: #66cc66;">&#125;</span>
			<span style="color: #66cc66;">&#125;</span>
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span> catch <span style="color: #66cc66;">&#40;</span>Exception e<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
		e<span style="color: #66cc66;">.</span>printStackTrace<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span>
<span style="color: #808080; font-style: italic;">/**********************END***********************/</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://ursob.org/2009/09/25/struts-packaging-download/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>linux 配置jdk</title>
		<link>http://ursob.org/2009/09/19/linux-jdk/</link>
		<comments>http://ursob.org/2009/09/19/linux-jdk/#comments</comments>
		<pubDate>Sat, 19 Sep 2009 16:27:33 +0000</pubDate>
		<dc:creator>MoistRot</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://ursob.org/?p=29</guid>
		<description><![CDATA[包含在linux环境下配置JDK，和解决Linux 下JAVA 乱码问题！]]></description>
			<content:encoded><![CDATA[<p>首先需要从官网上下载个linux的jdk的bin文件，个人推荐使用自解压bin.因为我比觉习惯。</p>
<p><a href="http://java.sun.com/javase/downloads/index.jsp">http://java.sun.com/javase/downloads/index.jsp</a></p>
<p>下载之后，直接运行./java_ee_sdk-5_07-jdk-6u16-linux.bin<br />
他将自解压。完成之后copy到自己想放入的目录。我一般放在/opt下。<br />
完成之后，下面就是配置java的环境变量。以我自己的为例。我的jdk是放在/opt/jdk6目录中。</p>
<p>用root权限编辑/etc/profile文件。末尾加上以下内容</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:Courier New, Courier;"><span style="color: #666666; font-style: italic;">#set java environment</span>
<span style="color: #007800;">JAVA_HOME</span>=<span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>jdk6
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">JRE_HOME</span>=<span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>jdk6<span style="color: #000000; font-weight: bold;">/</span>jre
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">CLASSPATH</span>=.:<span style="color: #007800;">$JAVA_HOME</span><span style="color: #000000; font-weight: bold;">/</span>lib:<span style="color: #007800;">$JRE_HOME</span><span style="color: #000000; font-weight: bold;">/</span>lib:<span style="color: #007800;">$CLASSPATH</span>
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">PATH</span>=<span style="color: #007800;">$JAVA_HOME</span><span style="color: #000000; font-weight: bold;">/</span>bin:<span style="color: #007800;">$JRE_HOME</span><span style="color: #000000; font-weight: bold;">/</span>bin:<span style="color: #007800;">$PATH</span></pre></div></div>

<p>记得将路径换为你自己本机路径。</p>
<p>保存退出后，更新下系统配置文件</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:Courier New, Courier;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #7a0874; font-weight: bold;">source</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>profile</pre></div></div>

<p>配置完成。</p>
<p>不知道sun以前是为什么总是不解决jdk在linux下中文字体的问题，现在被收购后是否重视这块了呢？</p>
<p>下面就说下默认安装jdk后还是又中文字体显示方块的问题。原因是jdk找不到在jre的fonts目录下的字体文件。</p>
<p>其实直接在jre/lib/fonts下建立一个fallback的文件夹，其中创建一个字体的软链接，就OK了.还是以我本机为例。</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:Courier New, Courier;"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>jdk6<span style="color: #000000; font-weight: bold;">/</span>jre<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>fonts
<span style="color: #666666; font-style: italic;">#创建文件夹</span>
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">mkdir</span> fallback
<span style="color: #666666; font-style: italic;"># 进入刚创建的文件夹</span>
<span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">!</span>$
<span style="color: #666666; font-style: italic;"># 创建字体链接，此字体是在上篇安装过的LiHeiPro字体</span>
<span style="color: #c20cb9; font-weight: bold;">ln</span> <span style="color: #660033;">-s</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>share<span style="color: #000000; font-weight: bold;">/</span>fonts<span style="color: #000000; font-weight: bold;">/</span>lihei<span style="color: #000000; font-weight: bold;">/</span>LiHeiPro.ttf LiHeiPro.ttf</pre></div></div>

<p>这就行了。安装LiHeiPro字体，下面链接。</p>
<p><a href="http://ursob.org/2009/09/19/ubuntu-apple-lihei/">http://ursob.org/2009/09/19/ubuntu-apple-lihei/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ursob.org/2009/09/19/linux-jdk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
