﻿<?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/snoics/</link><description>&lt;SCRIPT language=JavaScript&gt; 
&lt;!--// 
var version = "other" ;
 browserName = navigator.appName;                                       browserVer = parseInt(navigator.appVersion); 

if (browserName == "Netscape" &amp;&amp; browserVer &gt;= 3) 
  version = "n3"; 
else if (browserName == "Netscape" &amp;&amp; browserVer &lt; 3)
  version = "n2"; 
else if (browserName == "Microsoft Internet Explorer" &amp;&amp; browserVer &gt;= 4) 
  version = "e4"; 
else if (browserName == "Microsoft Internet Explorer" &amp;&amp; browserVer &lt; 4) 
  version = "e3"; 
 
function marquee1() { 
	                                                                                 if (version == "e4") 
	                                                                                      { 
          document.write("&lt;marquee behavior=scroll direction=up width=367 height=135 scrollamount=1 scrolldelay=100&gt;") 
	                                                                                        } 
                                                                                                 } 
 
                                                                                         function marquee2() 
                                                                                               { 
	                                                                                 if (version == "e4") 
	                                                                                     { 
		                                                                       document.write("&lt;/marquee&gt;") 
	                                                                                       } 
                                                                                                  } 
 
 //--&gt; 
&lt;/SCRIPT&gt;

&lt;SCRIPT language=JavaScript&gt;marquee1();&lt;/SCRIPT&gt;

&lt;SCRIPT&gt;  
&lt;!--  
                                                                                           var from = 1;  
                                                                                           var to = 4;  
                                                                                            var delay = 55; //闪的速度  
                                                               var glowColor = "#FFCC00";//颜色  
                                                               var i = to;  
                                                                                            var j = 0; 
                                                                                            textPulseDown();  
  
                                                                                             function textPulseUp()  
                                                                                                 {  
                                                                                                   if (!document.all)  
                                                                                                      return  
                                                                                                   if (i &lt; to)  
                                                                                                       {  
                                                                                                           //theText.style.filter = "Glow(Color=" + glowColor + ", Strength=" + i + ")";  
                                                                                                           i++;  
                                                                                                           theTimeout = setTimeout('textPulseUp()',delay);  
                                                                                                           return 0;  
                                                                                                         }  
  
                                                                                                    if (i = to)  
                                                                                                        {  
                                                                                                           theTimeout = setTimeout('textPulseDown()',delay);  
                                                                                                           return 0;  
                                                                                                            }  
  
  
                                                                                                     }  
  
                                                                                                function textPulseDown()  
                                                                                                      {  
                                                                                                         if (!document.all)  
                                                                                                              return  
                                                                                                         if (i &gt; from)  
                                                                                                              {  
                                                                                                                 //theText.style.filter = "Glow(Color=" + glowColor + ", Strength=" + i + ")";  
                                                                                                                 i--;  
                                                                                                                 theTimeout = setTimeout('textPulseDown()',delay);  
                                                                                                                 return 0;  
                                                                                                               }  
  
                                                                                                          if (i = from)  
                                                                                                              {  
                                                                                                                 theTimeout = setTimeout('textPulseUp()',delay);  
                                                                                                                 return 0;  
                                                                                                                }  
                                                                                                            }  
  
                                                                                                 //--&gt;  
                                                                                    &lt;/SCRIPT&gt;

&lt;FONT style="COLOR: white; FILTER: glow(color=#9966FF,strength=5); HEIGHT: 10px; PADDING-BOTTOM: 3px; PADDING-LEFT: 1px; PADDING-RIGHT: 1px; PADDING-TOP: 3px"&gt;
&lt;br&gt;
天很高,云很淡 风很轻,海很蓝&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
牵着手&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;
在浪漫的沙滩上,留下两行清晰的脚印......

&lt;/font&gt;</description><language>zh-cn</language><lastBuildDate>Sat, 17 May 2008 15:12:21 GMT</lastBuildDate><pubDate>Sat, 17 May 2008 15:12:21 GMT</pubDate><ttl>60</ttl><item><title>不要重新发明轮子？</title><link>http://www.blogjava.net/snoics/archive/2008/04/24/195521.html</link><dc:creator>snoics</dc:creator><author>snoics</author><pubDate>Thu, 24 Apr 2008 04:52:00 GMT</pubDate><guid>http://www.blogjava.net/snoics/archive/2008/04/24/195521.html</guid><wfw:comment>http://www.blogjava.net/snoics/comments/195521.html</wfw:comment><comments>http://www.blogjava.net/snoics/archive/2008/04/24/195521.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/snoics/comments/commentRss/195521.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/snoics/services/trackbacks/195521.html</trackback:ping><description><![CDATA[<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000">&#8220;不要重新发明轮子！！！&#8221;</span><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 乍听之下，这一句话似乎是很有道理。确实在很多情况下，这句话是很有道理。可是殊不知在这一句冠冕堂皇的理由下，有多少的创意、多少的激情被抹杀了？<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在很多情况下，有些中国的程序员只要自己想做一些有创造性的工作，确总是被上级或其他的某些同行嘲笑&#8220;你要做的这个东西已经有现成的了，有必要再花时间去做吗？你能做的比别人做出来的东西更好吗？你这是在重新发明轮子，而且是不好的轮子。&#8221;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;结果，一个接着一个的萌芽被&#8216;不要重新发明轮子&#8217;这个古训扼杀了。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;想起来真是觉得很悲哀也很无奈，中国的程序员永远只能使用外国人的技术，甚至其中有不少都是已经快要过时了才开始在中国普及开。一个接着一个的流行框架在国外的人手中产生出来，为什么他们就可以重新发明轮子，而我们就不行呢？死守古训导致的唯一的结果就是无法进步，永远只能使用别人的东西，最多就是罗列了一堆会使用的框架，真正的技术都是掌握在别人的手里。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;有一次面试，简历上列出了会使用：JSF,SPRING,HIBERNATE（还有不少其他的，具体的记不太清了），而且已经参与开发过了两个WEB类型的项目，并且已经通过了SCJP认证。结果确连几种List的区别，HashTable和HashMap的区别都分不清，设计模式方面更是惨不忍睹，甚至更不可思议的是连使用HTML语法画出一个稍显复杂的表格都办不到。回答是：因为都是使用框架和框架提供的标签，所以不需要接触这些&#8230;&#8230;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;还是那句话：有时候是该反省反省，除了框架，自己还剩下什么？<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/snoics/aggbug/195521.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/snoics/" target="_blank">snoics</a> 2008-04-24 12:52 <a href="http://www.blogjava.net/snoics/archive/2008/04/24/195521.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个关于分页的数据和显示分离的设计</title><link>http://www.blogjava.net/snoics/archive/2008/03/25/188446.html</link><dc:creator>snoics</dc:creator><author>snoics</author><pubDate>Tue, 25 Mar 2008 03:39:00 GMT</pubDate><guid>http://www.blogjava.net/snoics/archive/2008/03/25/188446.html</guid><wfw:comment>http://www.blogjava.net/snoics/comments/188446.html</wfw:comment><comments>http://www.blogjava.net/snoics/archive/2008/03/25/188446.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/snoics/comments/commentRss/188446.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/snoics/services/trackbacks/188446.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 数据分页显示是一项挺烦人的工作，涉及到数据来源，数据生成，数据显示这几个方面。数据有可能是从任意地方以任意方式获取到的，而且获取到的数据又有可能是经过了任意的方式处理之后，再以任意的方式显示给最终用户。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这...&nbsp;&nbsp;<a href='http://www.blogjava.net/snoics/archive/2008/03/25/188446.html'>阅读全文</a><img src ="http://www.blogjava.net/snoics/aggbug/188446.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/snoics/" target="_blank">snoics</a> 2008-03-25 11:39 <a href="http://www.blogjava.net/snoics/archive/2008/03/25/188446.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Cron表达式【转】</title><link>http://www.blogjava.net/snoics/articles/188349.html</link><dc:creator>snoics</dc:creator><author>snoics</author><pubDate>Mon, 24 Mar 2008 13:02:00 GMT</pubDate><guid>http://www.blogjava.net/snoics/articles/188349.html</guid><wfw:comment>http://www.blogjava.net/snoics/comments/188349.html</wfw:comment><comments>http://www.blogjava.net/snoics/articles/188349.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/snoics/comments/commentRss/188349.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/snoics/services/trackbacks/188349.html</trackback:ping><description><![CDATA[<p><br />
一个cron表达式有至少6个（也可能7个）有空格分隔的时间元素。</p>
<p>按顺序依次为 <br />
秒（0~59） <br />
分钟（0~59） <br />
小时（0~23） <br />
天（月）（0~31，但是你需要考虑你月的天数） <br />
月（0~11） <br />
天（星期）（1~7 1=SUN 或 SUN，MON，TUE，WED，THU，FRI，SAT） <br />
7.年份（1970－2099）</p>
<p>其中每个元素可以是一个值(如6),一个连续区间(9-12),一个间隔时间(8-18/4)(/表示每隔4小时),一个列表(1,3,5),通配符。由于"月份中的日期"和"星期中的日期"这两个元素互斥的,必须要对其中一个设置?. <br />
0 0 10,14,16 * * ? 每天上午10点，下午2点，4点<br />
0 0/30 9-17 * * ?&nbsp;&nbsp; 朝九晚五工作时间内每半小时<br />
0 0 12 ? * WED 表示每个星期三中午12点 <br />
"0 0 12 * * ?" 每天中午12点触发 <br />
"0 15 10 ? * *" 每天上午10:15触发 <br />
"0 15 10 * * ?" 每天上午10:15触发 <br />
"0 15 10 * * ? *" 每天上午10:15触发 <br />
"0 15 10 * * ? 2005" 2005年的每天上午10:15触发 <br />
"0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发 <br />
"0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发 <br />
"0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发 <br />
"0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发 <br />
"0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44触发 <br />
"0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发 <br />
"0 15 10 15 * ?" 每月15日上午10:15触发 <br />
"0 15 10 L * ?" 每月最后一日的上午10:15触发 <br />
"0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发 <br />
"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发 <br />
"0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发 </p>
<p>有些子表达式能包含一些范围或列表 <br />
例如：子表达式（天（星期））可以为 &#8220;MON-FRI&#8221;，&#8220;MON，WED，FRI&#8221;，&#8220;MON-WED,SAT&#8221; <br />
&#8220;*&#8221;字符代表所有可能的值 <br />
因此，&#8220;*&#8221;在子表达式（月）里表示每个月的含义，&#8220;*&#8221;在子表达式（天（星期））表示星期的每一天 <br />
&nbsp;<br />
&#8220;/&#8221;字符用来指定数值的增量 <br />
例如：在子表达式（分钟）里的&#8220;0/15&#8221;表示从第0分钟开始，每15分钟 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在子表达式（分钟）里的&#8220;3/20&#8221;表示从第3分钟开始，每20分钟（它和&#8220;3，23，43&#8221;）的含义一样 </p>
<p>&#8220;？&#8221;字符仅被用于天（月）和天（星期）两个子表达式，表示不指定值 <br />
当2个子表达式其中之一被指定了值以后，为了避免冲突，需要将另一个子表达式的值设为&#8220;？&#8221; <br />
&nbsp;<br />
&#8220;L&#8221; 字符仅被用于天（月）和天（星期）两个子表达式，它是单词&#8220;last&#8221;的缩写 <br />
但是它在两个子表达式里的含义是不同的。 <br />
在天（月）子表达式中，&#8220;L&#8221;表示一个月的最后一天 <br />
在天（星期）自表达式中，&#8220;L&#8221;表示一个星期的最后一天，也就是SAT <br />
如果在&#8220;L&#8221;前有具体的内容，它就具有其他的含义了 <br />
例如：&#8220;6L&#8221;表示这个月的倒数第６天，&#8220;ＦＲＩＬ&#8221;表示这个月的最一个星期五 <br />
注意：在使用&#8220;L&#8221;参数时，不要指定列表或范围，因为这会导致问题 <br />
&nbsp;<br />
字段 允许值 允许的特殊字符<br />
秒&nbsp; 0-59&nbsp; , - * /<br />
分&nbsp; 0-59&nbsp; , - * /<br />
小时&nbsp; 0-23&nbsp; , - * /<br />
日期&nbsp; 1-31&nbsp; , - * ? / L W C<br />
月份&nbsp; 1-12 或者 JAN-DEC&nbsp; , - * /<br />
星期&nbsp; 1-7 或者 SUN-SAT&nbsp; , - * ? / L C #<br />
年（可选）&nbsp; 留空, 1970-2099&nbsp; , - * /<br />
</p>
<p><br />
&nbsp;</p>
<img src ="http://www.blogjava.net/snoics/aggbug/188349.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/snoics/" target="_blank">snoics</a> 2008-03-24 21:02 <a href="http://www.blogjava.net/snoics/articles/188349.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IE存储空间不足错误的终极解决方案</title><link>http://www.blogjava.net/snoics/archive/2008/03/24/188342.html</link><dc:creator>snoics</dc:creator><author>snoics</author><pubDate>Mon, 24 Mar 2008 12:38:00 GMT</pubDate><guid>http://www.blogjava.net/snoics/archive/2008/03/24/188342.html</guid><wfw:comment>http://www.blogjava.net/snoics/comments/188342.html</wfw:comment><comments>http://www.blogjava.net/snoics/archive/2008/03/24/188342.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.blogjava.net/snoics/comments/commentRss/188342.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/snoics/services/trackbacks/188342.html</trackback:ping><description><![CDATA[IE有时会在打开一些页面时出现<br />
<br />
<span style="color: red">此对话框出现错误。<br />
<br />
错误：53<br />
存储空间不足，无法完成此操作</span><br />
<br />
的错误提示框，导致页面最终无法打开<br />
<br />
<br />
经过很长时间，终于发现在IE7中解决这个问题的解决方法<br />
<br />
在IE7中进行如下操作：<br />
<br />
Tools--&gt;Internet Options--&gt;Programs--&gt;Advanced--&gt;Reset--&gt;Reset<br />
<br />
这样讲IE7中的各项配置，包括插件全部都恢复到IE7刚安装完时的最初始化的状态，之前的那个错误也解决了。<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/snoics/aggbug/188342.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/snoics/" target="_blank">snoics</a> 2008-03-24 20:38 <a href="http://www.blogjava.net/snoics/archive/2008/03/24/188342.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>继续努力……</title><link>http://www.blogjava.net/snoics/archive/2007/11/25/162997.html</link><dc:creator>snoics</dc:creator><author>snoics</author><pubDate>Sun, 25 Nov 2007 10:51:00 GMT</pubDate><guid>http://www.blogjava.net/snoics/archive/2007/11/25/162997.html</guid><wfw:comment>http://www.blogjava.net/snoics/comments/162997.html</wfw:comment><comments>http://www.blogjava.net/snoics/archive/2007/11/25/162997.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/snoics/comments/commentRss/162997.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/snoics/services/trackbacks/162997.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;迷惑了一段时间，现在终于想通了，还是继续以前的执着，继续朝以前的那个目标不断努力吧。差点就放弃了，不过还是终于还是又回来了。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;一定要，也一定会变得更强，对自己有信心&nbsp;&nbsp;&nbsp;&nbsp;^_^<br />
<br />
<img src ="http://www.blogjava.net/snoics/aggbug/162997.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/snoics/" target="_blank">snoics</a> 2007-11-25 18:51 <a href="http://www.blogjava.net/snoics/archive/2007/11/25/162997.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>snoics-reptile 网页爬虫2.1   (2006-10-27日更新)</title><link>http://www.blogjava.net/snoics/archive/2006/10/27/77730.html</link><dc:creator>snoics</dc:creator><author>snoics</author><pubDate>Fri, 27 Oct 2006 13:05:00 GMT</pubDate><guid>http://www.blogjava.net/snoics/archive/2006/10/27/77730.html</guid><wfw:comment>http://www.blogjava.net/snoics/comments/77730.html</wfw:comment><comments>http://www.blogjava.net/snoics/archive/2006/10/27/77730.html#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://www.blogjava.net/snoics/comments/commentRss/77730.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/snoics/services/trackbacks/77730.html</trackback:ping><description><![CDATA[     <br />           <font size="5"><font face="Tahoma" size="4">最近因为工作太忙的原因，一直没有时间来更新，现在放出2.1的版本（包含最新的源代码）。</font><br /><br />        <font size="4">下载地址：<br /></font>                         <a href="/Files/snoics/snoics-reptile2.1.part1.rar"><font size="3">snoics-reptile2.1.part1.rar</font></a><br />                         <a href="/Files/snoics/snoics-reptile2.1.part2.rar"><font size="3">snoics-reptile2.1.part2.rar</font></a><br />                         <a href="/Files/snoics/snoics-reptile2.1.part3.rar"><font size="3">snoics-reptile2.1.part3.rar</font></a><br />                         <a href="/Files/snoics/snoics-reptile2.1.part4.rar"><font size="3">snoics-reptile2.1.part4.rar</font></a><br /><br />          <font size="4">（大家有什么意见可以在这里提出，只要有时间，我会尽量更新，有什么建议可以在blog里面提出，或者加我的MSN一起讨论。  ^_^ ）</font><br /><br /><table style="WIDTH: 624px; HEIGHT: 291px" width="624" border="1"><tbody><tr><td align="left" width="100%" colspan="2"><font color="green">版本历史<font size="+0"><br /><br /></font></font></td></tr><tr><td align="left" width="10%">2.1：<br /><br /></td><td align="left" width="95%">1、不用再配置snoics-configpath.xml中的路径。<br />2、定时自动保存Cache<br />3、修改了一些Bug<br /></td></tr><tr><td align="left" width="10%">2.0：<br /><br /></td><td align="left" width="95%">核心代码全部重写，增加了扩展性，通过扩展之后，基本上能实现对整个网站完整的解析<br /><br /></td></tr><tr><td align="left" width="10%">1.0：<br /><br /></td><td align="left" width="95%">实现了整站抓取的基本的功能，不能解析特殊的URL，对javascript无法辨认<br /></td></tr></tbody></table></font><img src ="http://www.blogjava.net/snoics/aggbug/77730.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/snoics/" target="_blank">snoics</a> 2006-10-27 21:05 <a href="http://www.blogjava.net/snoics/archive/2006/10/27/77730.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>猫扑电台遨游插件</title><link>http://www.blogjava.net/snoics/archive/2006/09/06/68101.html</link><dc:creator>snoics</dc:creator><author>snoics</author><pubDate>Wed, 06 Sep 2006 11:28:00 GMT</pubDate><guid>http://www.blogjava.net/snoics/archive/2006/09/06/68101.html</guid><wfw:comment>http://www.blogjava.net/snoics/comments/68101.html</wfw:comment><comments>http://www.blogjava.net/snoics/archive/2006/09/06/68101.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/snoics/comments/commentRss/68101.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/snoics/services/trackbacks/68101.html</trackback:ping><description><![CDATA[发现猫扑的电台不错，把它作成遨游的插件了，放上来与大家分享。<br /><br />下载以后把文件解压到遨游的插件目录下，就会在侧边拦出现MOP的电台，用起来很方便。<a href="/Files/snoics/MOP"><br /><br /><br />http://www.blogjava.net/Files/snoics/MOP.rar</a><img src ="http://www.blogjava.net/snoics/aggbug/68101.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/snoics/" target="_blank">snoics</a> 2006-09-06 19:28 <a href="http://www.blogjava.net/snoics/archive/2006/09/06/68101.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>snoics-reptile中的snoics-systemconfig.xml的CSDN中Java文档中心的抓取配置</title><link>http://www.blogjava.net/snoics/archive/2006/08/19/64517.html</link><dc:creator>snoics</dc:creator><author>snoics</author><pubDate>Sat, 19 Aug 2006 06:30:00 GMT</pubDate><guid>http://www.blogjava.net/snoics/archive/2006/08/19/64517.html</guid><wfw:comment>http://www.blogjava.net/snoics/comments/64517.html</wfw:comment><comments>http://www.blogjava.net/snoics/archive/2006/08/19/64517.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/snoics/comments/commentRss/64517.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/snoics/services/trackbacks/64517.html</trackback:ping><description><![CDATA[
		<p>    有些人说不知道snoics-reptile中的snoics-systemconfig.xml不知道怎么配置，这里就给出一个CSDN中Java文档中心的抓取配置的抓取配置。<br /><br />     在抓取完了之后往Apache的httpd.conf中加入<br />Listen 10001<br />&lt;VirtualHost *:10001&gt;<br />    DocumentRoot D:\\temp\\reptile\\website<br />&lt;/VirtualHost&gt;<br />     这段配置。<br /><br /><br />     最后删除抓取下来的文件夹中的D:\temp\reptile\website\author\index.html这个文件。不知道为什么文档中心的这个URL是一个空的页面<a href="http://dev.csdn.net/author">http://dev.csdn.net/author</a>  ，把这个URL的相对应的抓取下的文件删除就可以正常使用了<br /><br />     在抓取的过程中，有些图片文件可能会出现错误，不过不影响使用，因为这些图片的路径本身大概就有些问题。<br /><br /><br />      附件-配置文件：<a href="/Files/snoics/snoics-systemconfig.rar">http://www.blogjava.net/Files/snoics/snoics-systemconfig.rar</a></p>
<img src ="http://www.blogjava.net/snoics/aggbug/64517.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/snoics/" target="_blank">snoics</a> 2006-08-19 14:30 <a href="http://www.blogjava.net/snoics/archive/2006/08/19/64517.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>源代码发布 snoics-reptile 网页爬虫2.0  </title><link>http://www.blogjava.net/snoics/archive/2006/06/03/50102.html</link><dc:creator>snoics</dc:creator><author>snoics</author><pubDate>Sat, 03 Jun 2006 02:53:00 GMT</pubDate><guid>http://www.blogjava.net/snoics/archive/2006/06/03/50102.html</guid><wfw:comment>http://www.blogjava.net/snoics/comments/50102.html</wfw:comment><comments>http://www.blogjava.net/snoics/archive/2006/06/03/50102.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://www.blogjava.net/snoics/comments/commentRss/50102.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/snoics/services/trackbacks/50102.html</trackback:ping><description><![CDATA[
		<table width="90%">
				<tbody>
						<tr>
								<td>
										<table width="100%">
												<tbody>
														<tr>
																<td>
																		<font color="#ff0000">源代码发布</font>
																		<br />
																		<br />snoics-reptile 网页爬虫2.0  <br /></td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
						<tr>
								<td>
										<table width="100%">
												<tbody>
														<tr>
																<td align="left" width="10%">作者：</td>
																<td align="left" width="95%">施伟</td>
														</tr>
														<tr>
																<td align="left" width="10%">EMail：</td>
																<td align="left" width="95%">snoics@hotmail.com</td>
														</tr>
														<tr>
																<td align="left" width="10%">主页：</td>
																<td align="left" width="95%">
																		<a href="/snoics" target="_blank">http://www.blogjava.net/snoics</a>
																</td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
						<tr>
								<td>
										<table width="100%">
												<tbody>
														<tr>
																<td align="left" width="100%">
																		<font color="red">
																				<br />
																				<br />FAQ</font>
																		<br />
																		<br />
																</td>
														</tr>
														<tr>
																<td align="left" width="100%">
																		<font color="green">1、snoics-reptile是什么？</font>
																		<br />
																		<br />
																</td>
														</tr>
														<tr>
																<td align="left" width="100%">    是用纯Java开发的，用来进行网站镜像抓取的工具，可以使用配制文件中提供的URL入口，<br />把这个网站所有的能用浏览器通过GET的方式获取到的资源全部抓取到本地，包括网页和各<br />种类型的文件，如：图片、flash、mp3、zip、rar、exe等文件。可以将整个网站完整地下传至<br />硬盘内，并能保持原有的网站结构精确不变。只需要把抓取下来的网站放到web服务器<br />(如：Apache)中，就可以实现完整的网站镜像。<br /><br /></td>
														</tr>
														<tr>
																<td align="left" width="100%">
																		<font color="green">2、现在已经有了其他的类似的软件，为什么还要开发snoics-reptile？</font>
																		<br />
																		<br />
																</td>
														</tr>
														<tr>
																<td align="left" width="100%">    因为有些在抓取的过程中经常会出现错误的文件，而且对很多使用<br />javascript控制的URL没有办法正确的解析，而snoics-reptile通过对外提供<br />接口和配置文件的形式，对特殊的URL，可以通过自由的扩展对外提<br />供的接口，并通过配置文件注入的方式，基本上能实现对所有的网页都<br />正确的解析和抓取。<br /><br /></td>
														</tr>
														<tr>
																<td align="left" width="100%">
																		<font color="green">3、如何使用？</font>
																		<br />
																		<br />
																</td>
														</tr>
														<tr>
																<td align="left" width="100%">    a、配置 bin\snoics-configpath.xml 文件<br /><br />        将配置文件中的path节点的值改为conf文件夹在系统中的绝对路径，<br />        如: c:\snoics-reptile\conf <br /><br /></td>
														</tr>
														<tr>
																<td align="left" width="100%">    b、配置 conf\snoics-systemconfig.xml 文件<br /><br />        其中parameters节点中的配置为对需要抓取的网站的参数的配置，<br /><br />        以下是各个参数的说明： <br /><br />        1、websitename：<br /><br />        站点的名称(不能为空，由字母和数字组成)<br /><br />        2、charsetName：<br /><br />        该站点使用的字符集类型<br /><br />        3、website：<br /><br />        将被抓取的站点的域名<br /><br />        4、startpage：<br /><br />        抓取的起始页面<br /><br />        5、url：<br /><br />        该站点中将被抓取的部分(如果留空则为整个站点，可以有多个URL，<br />每个URL之间使用";"隔开)<br /><br />        6、remoteurlflag：<br /><br />        代表远程URL的标志，没有特殊情况请不要修改此处，使用默认值<br />(多个之间使用";"隔开)<br /><br />        7、forbidurl：<br /><br />        该站点中不被抓取的部分(多个之间使用";"隔开)<br /><br />        8、cachefile：<br /><br />        该站点使用的缓存文件，如果缓存文件不存在则自动创建一个新的，<br />如果已经存在，则会载入文件中保存的信息<br /><br />        9、filerootpath：<br /><br />        抓取下的文件的保存路径(必须是系统中的绝对路径)<br /><br />        10、indexpage：<br /><br />        将被保存成index.html文件名的URL类型(多个之间使用";"隔开)<br /><br />        11、filenamelength：<br /><br />        页面保存到本地时，随机生成的文件名的长度<br /><br />        12、cacheunitsize：<br /><br />        一个cache单元的大小<br /><br />        13、reptile-downloadfiletype：<br /><br />        将被抓取到本地的文件类型(多个之间使用";"隔开)<br /><br />        14、reptile-undownloadfiletype：<br /><br />        页面被保存到本地时，该种类型的文件的URL将被改成远程的URL地址<br />，如果这种类型出现在reptile-downloadfiletype中时，则文件将被抓取到本地，<br />而URL也将改成本地的URL(多个之间使用";"隔开) <br /><br /></td>
														</tr>
														<tr>
																<td align="left" width="100%">    c、在参数配置好之后，执行bin/run.bat文件<br /><br /></td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
						<tr>
								<td align="left" width="100%">
										<font color="green">4、如何扩展接口？</font>
										<br />
										<br />
								</td>
						</tr>
						<tr>
								<td nowrap="" align="left" width="100%">    扩展接口使用的配置文件是：conf/snoics-reptile-urlregex.xml<br /><br />    首先加入一段如下的配置<br />    &lt;bean id="ahrefRegexUrl" class="com.snoics.reptile.regex.url.impl.UrlRegex" singleton="false"&gt; <br />        &lt;property name="regexUrl"&gt; <br />            &lt;!-- 提取可能包含URL的字符串 --&gt; <br />            &lt;value&gt;&lt;![CDATA[&lt;[^!&lt;&gt;]*\shref\s*=\s*["']?[^&lt;&gt;]*["'\s][^&lt;&gt;]*&gt;]]&gt;&lt;/value&gt; <br />        &lt;/property&gt; <br />        &lt;property name="replaceRegexUrl"&gt; <br />            &lt;!-- 替换可能包含URL的字符串 --&gt; <br />            &lt;value&gt;&lt;![CDATA[&lt;[^!&lt;&gt;]*\shref\s*=\s*["']?reptile-replace-string["'\s][^&lt;&gt;]*&gt;]]&gt;&lt;/value&gt; <br />        &lt;/property&gt; <br />        &lt;property name="getRegexUrl"&gt; <br />            &lt;!-- 提取最终URL --&gt; <br />            &lt;ref bean="ahrefGetRegexUrl"/&gt; <br />        &lt;/property&gt; <br />    &lt;/bean&gt;<br />    <br /><br />    其中ahrefGetRegexUrl是实现了com.snoics.reptile.regex.url.IGetUrlRegex接口的类，用来从可能包含了URL的字符串里面提取其中包含的URL <br /><br /><br />    其次加入如下的配置：<br /><br />     &lt;bean id="ahrefGetRegexUrl" class="com.snoics.reptile.regex.url.impl.AhrefGetRegexUrl" singleton="false"&gt;<br />         &lt;property name="regexString"&gt;<br />              &lt;!-- 提取最终URL --&gt;<br />               &lt;value&gt;&lt;![CDATA[href\s*=\s*["']?[^\s"]+["'\s]\s*]]&gt;&lt;/value&gt;<br />         &lt;/property&gt;<br />         &lt;property name="unIncludeRegexString"&gt;<br />                &lt;!-- <br />                     排除不需要的类型<br />                     多个正则表达式之间使用';'隔开 <br />                  --&gt;<br />                 &lt;value&gt;&lt;![CDATA[javascript\s?:\s?;mailto\s?:\s?;^#$;]]&gt;&lt;/value&gt;<br />           &lt;/property&gt;<br />      &lt;/bean&gt; <br /><br /><br />    最后，在如下的配置中，加入刚才配置好的部分 <br /><br />    &lt;bean id="urlRegexMap" class="com.snoics.reptile.regex.url.impl.UrlRegexMap"&gt; <br />        &lt;property name="ulrRegexMap"&gt; <br />            &lt;map&gt; <br />                &lt;!-- 名称 --&gt; <br />                &lt;entry key="ahref"&gt; <br />                    &lt;!-- 解析URL使用的类 --&gt; <br />                    &lt;ref bean="ahrefRegexUrl"/&gt; <br />                &lt;/entry&gt; <br />                &lt;entry key="src"&gt; <br />                    &lt;ref bean="srcRegexUrl"/&gt; <br />                &lt;/entry&gt; <br />            &lt;/map&gt; <br />        &lt;/property&gt; <br />    &lt;/bean&gt;<br /><br /><br /></td>
						</tr>
				</tbody>
		</table>
		<tr>
				<td>
						<table width="100%">
								<tbody>
										<tr>
												<td align="left" width="100%" colspan="2">
														<font color="green">5、版本历史<font size="+0"><br /><br /></font></font>
												</td>
										</tr>
										<tr>
												<td align="left" width="10%">2.0：<br /><br /></td>
												<td align="left" width="95%">核心代码全部重写，增加了扩展性，通过扩展之后，基本上能实现对整个网站完整的解析<br /><br /></td>
										</tr>
										<tr>
												<td align="left" width="10%">1.0：<br /><br /></td>
												<td align="left" width="95%">实现了整站抓取的基本的功能，不能解析特殊的URL，对javascript无法辨认<br /><br /></td>
										</tr>
								</tbody>
						</table>源代码下载地址：<br /><br /><a href="/Files/snoics/snoics-reptile2.0-src.part1.rar">snoics-reptile2.0-src.part1.rar</a></td>
		</tr>
		<br />
		<a href="/Files/snoics/snoics-reptile2.0-src.part2.rar">snoics-reptile2.0-src.part2.rar</a>
		<br />
		<a href="/Files/snoics/snoics-reptile2.0-src.part3.rar">snoics-reptile2.0-src.part3.rar</a>
		<br />
		<a href="/Files/snoics/snoics-reptile2.0-src.part4.rar">snoics-reptile2.0-src.part4.rar</a>
		<br />
<img src ="http://www.blogjava.net/snoics/aggbug/50102.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/snoics/" target="_blank">snoics</a> 2006-06-03 10:53 <a href="http://www.blogjava.net/snoics/archive/2006/06/03/50102.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>snoics-reptile 网页爬虫2.0</title><link>http://www.blogjava.net/snoics/archive/2006/05/29/48833.html</link><dc:creator>snoics</dc:creator><author>snoics</author><pubDate>Mon, 29 May 2006 13:41:00 GMT</pubDate><guid>http://www.blogjava.net/snoics/archive/2006/05/29/48833.html</guid><wfw:comment>http://www.blogjava.net/snoics/comments/48833.html</wfw:comment><comments>http://www.blogjava.net/snoics/archive/2006/05/29/48833.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/snoics/comments/commentRss/48833.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/snoics/services/trackbacks/48833.html</trackback:ping><description><![CDATA[
		<table width="60%">
				<tbody>
						<tr>
								<td>
										<table width="100%">
												<tbody>
														<tr>
																<td>snoics-reptile 网页爬虫2.0<br /><br /></td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
						<tr>
								<td>
										<table width="100%">
												<tbody>
														<tr>
																<td align="left" width="10%">作者：</td>
																<td align="left" width="95%">施伟</td>
														</tr>
														<tr>
																<td align="left" width="10%">EMail：</td>
																<td align="left" width="95%">snoics@hotmail.com</td>
														</tr>
														<tr>
																<td align="left" width="10%">主页：</td>
																<td align="left" width="95%">
																		<a href="/snoics" target="_blank">http://www.blogjava.net/snoics</a>
																</td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
						<tr>
								<td>
										<table width="100%">
												<tbody>
														<tr>
																<td align="left" width="100%">
																		<font color="red">
																				<br />
																				<br />FAQ</font>
																		<br />
																		<br />
																</td>
														</tr>
														<tr>
																<td align="left" width="100%">
																		<font color="green">1、snoics-reptile是什么？</font>
																		<br />
																		<br />
																</td>
														</tr>
														<tr>
																<td align="left" width="100%">    是用纯Java开发的，用来进行网站镜像抓取的工具，可以使用<br />配制文件中提供的URL入口，把这个网站所有的能用浏览器通过<br />GET的方式获取到的资源全部抓取到本地，包括网页和各种类型<br />的文件，如：图片、flash、mp3、zip、rar、exe等文件。可以将整<br />个网站完整地下传至硬盘内，并能保持原有的网站结构精确不变。<br />只需要把抓取下来的网站放到web服务器(如：Apache)中，就可以<br />实现完整的网站镜像。<br /><br /></td>
														</tr>
														<tr>
																<td align="left" width="100%">
																		<font color="green">2、现在已经有了其他的类似的软件，为什么还要开发snoics-reptile？</font>
																		<br />
																		<br />
																</td>
														</tr>
														<tr>
																<td align="left" width="100%">    因为有些在抓取的过程中经常会出现错误的文件，而且对很多使用<br />javascript控制的URL没有办法正确的解析，而snoics-reptile通过对外提供<br />接口和配置文件的形式，对特殊的URL，可以通过自由的扩展对外提供<br />的接口，并通过配置文件注入的方式，基本上能实现对所有的网页都<br />正确的解析和抓取。<br /><br /></td>
														</tr>
														<tr>
																<td align="left" width="100%">
																		<font color="green">3、如何使用？</font>
																		<br />
																		<br />
																</td>
														</tr>
														<tr>
																<td align="left" width="100%">    a、配置 bin\snoics-configpath.xml 文件<br /><br />        将配置文件中的path节点的值改为conf文件夹在系统中的绝对路径，<br />        如: c:\snoics-reptile\conf <br /><br /></td>
														</tr>
														<tr>
																<td align="left" width="100%">    b、配置 conf\snoics-systemconfig.xml 文件<br /><br />        其中parameters节点中的配置为对需要抓取的网站的参数的配置，<br /><br />        以下是各个参数的说明： <br /><br />        1、websitename：<br /><br />        站点的名称(不能为空，由字母和数字组成)<br /><br />        2、charsetName：<br /><br />        该站点使用的字符集类型<br /><br />        3、website：<br /><br />        将被抓取的站点的域名<br /><br />        4、startpage：<br /><br />        抓取的起始页面<br /><br />        5、url：<br /><br />        该站点中将被抓取的部分(如果留空则为整个站点，可以有多个URL，<br />         每个URL之间使用";"隔开)<br /><br />        6、remoteurlflag：<br /><br />        代表远程URL的标志，没有特殊情况请不要修改此处，使用默认值<br />(多个之间使用";"隔开)<br /><br />        7、forbidurl：<br /><br />        该站点中不被抓取的部分(多个之间使用";"隔开)<br /><br />        8、cachefile：<br /><br />        该站点使用的缓存文件，如果缓存文件不存在则自动创建一个新的，<br />如果已经存在，则会载入文件中保存的信息<br /><br />        9、filerootpath：<br /><br />        抓取下的文件的保存路径(必须是系统中的绝对路径)<br /><br />        10、indexpage：<br /><br />        将被保存成index.html文件名的URL类型(多个之间使用";"隔开)<br /><br />        11、filenamelength：<br /><br />        页面保存到本地时，随机生成的文件名的长度<br /><br />        12、cacheunitsize：<br /><br />        一个cache单元的大小<br /><br />        13、reptile-downloadfiletype：<br /><br />        将被抓取到本地的文件类型(多个之间使用";"隔开)<br /><br />        14、reptile-undownloadfiletype：<br /><br />        页面被保存到本地时，该种类型的文件的URL将被改成远程的URL<br />地址，如果这种类型出现在reptile-downloadfiletype中时，则文件将被抓取<br />到本地，而URL也将改成本地的URL(多个之间使用";"隔开) <br /><br /></td>
														</tr>
														<tr>
																<td align="left" width="100%">    c、在参数配置好之后，执行bin/run.bat文件<br /><br /></td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
						<tr>
								<td align="left" width="100%">
										<font color="green">4、如何扩展接口？</font>
										<br />
										<br />
								</td>
						</tr>
						<tr>
								<td nowrap="" align="left" width="100%">    扩展接口使用的配置文件是：conf/snoics-reptile-urlregex.xml<br /><br />    首先加入一段如下的配置,其中正则表达式部分应该特定的需要自己给出，<br />    reptile-replace-string用来代替URL出现的位置，在程序执行的过程中，该部分<br />    会被自动替换。<br />    &lt;bean id="ahrefRegexUrl" class="com.snoics.reptile.regex.url.impl.UrlRegex" singleton="false"&gt; <br />        &lt;property name="regexUrl"&gt; <br />            &lt;!-- 提取可能包含URL的字符串 --&gt; <br />            &lt;value&gt;&lt;![CDATA[&lt;[^!&lt;&gt;]*\shref\s*=\s*["']?[^&lt;&gt;]*["'\s][^&lt;&gt;]*&gt;]]&gt;&lt;/value&gt; <br />        &lt;/property&gt; <br />        &lt;property name="replaceRegexUrl"&gt; <br />            &lt;!-- 替换可能包含URL的字符串 --&gt; <br />            &lt;value&gt;&lt;![CDATA[&lt;[^!&lt;&gt;]*\shref\s*=\s*["']?reptile-replace-string["'\s][^&lt;&gt;]*&gt;]]&gt;&lt;/value&gt; <br />        &lt;/property&gt; <br />        &lt;property name="getRegexUrl"&gt; <br />            &lt;!-- 提取最终URL --&gt; <br />            &lt;ref bean="ahrefGetRegexUrl"/&gt; <br />        &lt;/property&gt; <br />    &lt;/bean&gt;<br />    <br /><br />    其中ahrefGetRegexUrl是实现了com.snoics.reptile.regex.url.IGetUrlRegex<br />    接口的类，用来从可能包含了URL的字符串里面提取其中包含的URL <br /><br />    其次加入如下的配置：<br /><br />     &lt;bean id="ahrefGetRegexUrl" class="com.snoics.reptile.regex.url.impl.AhrefGetRegexUrl" singleton="false"&gt;<br />         &lt;property name="regexString"&gt;<br />              &lt;!-- 提取最终URL --&gt;<br />               &lt;value&gt;&lt;![CDATA[href\s*=\s*["']?[^\s"]+["'\s]\s*]]&gt;&lt;/value&gt;<br />         &lt;/property&gt;<br />         &lt;property name="unIncludeRegexString"&gt;<br />                &lt;!-- <br />                     排除不需要的类型<br />                     多个正则表达式之间使用';'隔开 <br />                  --&gt;<br />                 &lt;value&gt;&lt;![CDATA[javascript\s?:\s?;mailto\s?:\s?;^#$;]]&gt;&lt;/value&gt;<br />           &lt;/property&gt;<br />      &lt;/bean&gt;<br /><br />    最后，在如下的配置中，加入刚才配置好的部分 <br /><br />    &lt;bean id="urlRegexMap" class="com.snoics.reptile.regex.url.impl.UrlRegexMap"&gt; <br />        &lt;property name="ulrRegexMap"&gt; <br />            &lt;map&gt; <br />                &lt;!-- 名称 --&gt; <br />                &lt;entry key="ahref"&gt; <br />                    &lt;!-- 解析URL使用的类 --&gt; <br />                    &lt;ref bean="ahrefRegexUrl"/&gt; <br />                &lt;/entry&gt; <br />                &lt;entry key="src"&gt; <br />                    &lt;ref bean="srcRegexUrl"/&gt; <br />                &lt;/entry&gt; <br />            &lt;/map&gt; <br />        &lt;/property&gt; <br />    &lt;/bean&gt;<br /><br /><br /></td>
						</tr>
				</tbody>
		</table>
		<tr>
				<td>
						<table width="100%">
								<tbody>
										<tr>
												<td align="left" width="100%" colspan="2">
														<font color="green">5、版本历史<font size="+0"><br /><br /></font></font>
												</td>
										</tr>
										<tr>
												<td align="left" width="10%">2.0：<br /><br /></td>
												<td align="left" width="95%">核心代码全部重写，增加了扩展性，通过扩展之后，基本上能实现对整个网站完整的解析<br /><br /></td>
										</tr>
										<tr>
												<td align="left" width="10%">1.0：<br /><br /></td>
												<td align="left" width="95%">实现了整站抓取的基本的功能，不能解析特殊的URL，对javascript无法辨认<br /><br /></td>
										</tr>
								</tbody>
						</table>
						<font color="#800080">
								<br />下载地址：<br /><br /><a href="/Files/snoics/snoics-reptile2.0.part1.rar" target="_blank">snoics-reptile2.0.part1.rar</a><br /><br /><a href="/Files/snoics/snoics-reptile2.0.part2.rar" target="_blank">snoics-reptile2.0.part2.rar</a><br /><br /><a href="/Files/snoics/snoics-reptile2.0-doc.rar" target="_blank">snoics-reptile2.0-doc.rar</a>     <br /></font>
				</td>
		</tr>
<img src ="http://www.blogjava.net/snoics/aggbug/48833.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/snoics/" target="_blank">snoics</a> 2006-05-29 21:41 <a href="http://www.blogjava.net/snoics/archive/2006/05/29/48833.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>框架.....</title><link>http://www.blogjava.net/snoics/archive/2006/03/09/34411.html</link><dc:creator>snoics</dc:creator><author>snoics</author><pubDate>Thu, 09 Mar 2006 01:43:00 GMT</pubDate><guid>http://www.blogjava.net/snoics/archive/2006/03/09/34411.html</guid><wfw:comment>http://www.blogjava.net/snoics/comments/34411.html</wfw:comment><comments>http://www.blogjava.net/snoics/archive/2006/03/09/34411.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/snoics/comments/commentRss/34411.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/snoics/services/trackbacks/34411.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 现在各种各样的框架满天飞,几乎随便找个人都能把各种框架,模式,说的头头是道.弄的好象如果不懂这些,你就是落伍,就不懂的什么是编程,什么是企业应用系统的开发.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; 现在很多初学者一上来，就是这个框架,那个框架的，一会学了这个一会又学那个,往往忽略了最重要最基本的JAVA基础.<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; 个人认为,框架不等同于JAVA,它只是JAVA下面的一种工具，就算学会使用再多的框架也不代表就学会了JAVA.一种工具可能一开始不会用，可是如果重复使用过几次,我想只要是正常的人，没有人学不会的，就算是条件反射也该会了(会用了和理解了是两种完全不同的情况).<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; 结果也就出现了这样的情况,问到一个挺简单的问题,可是却都答不上来,原因是原来都是在别人的或者是框架里面封装好的东西,自己只是负责调用而已.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; 框架是比较容易过时的东西，只有基础才是比较持久的.所以当在学会了使用一大堆的框架以后,请考虑一下,如果除了框架,我还剩下了什么.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; 只是对这种情况的感想,没有任何贬低框架的意思.<img src ="http://www.blogjava.net/snoics/aggbug/34411.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/snoics/" target="_blank">snoics</a> 2006-03-09 09:43 <a href="http://www.blogjava.net/snoics/archive/2006/03/09/34411.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>捕获控制台的所有输出信息</title><link>http://www.blogjava.net/snoics/archive/2006/03/03/33355.html</link><dc:creator>snoics</dc:creator><author>snoics</author><pubDate>Fri, 03 Mar 2006 01:10:00 GMT</pubDate><guid>http://www.blogjava.net/snoics/archive/2006/03/03/33355.html</guid><wfw:comment>http://www.blogjava.net/snoics/comments/33355.html</wfw:comment><comments>http://www.blogjava.net/snoics/archive/2006/03/03/33355.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.blogjava.net/snoics/comments/commentRss/33355.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/snoics/services/trackbacks/33355.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 一般情况下,在记录日志时,只能把通过API进行记录的信息写入自定义的日志文件，其余的信息就无法被写入了.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 解决的办法就是重写System.out和System.err,让System.out,System.err的写入转向到你的日志文件，这样只要在控制台的所有的输出信息都会被记录到日志文件中.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 例如可以在系统进行初始化时进行这样的操作:<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 重写System.out:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PrintStream printStreamOut = new PrintStream(outputStreamOut);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.setOut(printStreamOut);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 重写System.err<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PrintStream printStreamErr = new PrintStream(outputStreamErr);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.setErr(printStreamErr);<BR><BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这里的outputStreamOut,和outputStreamErr都是自定义的重定向的日志文件的OutputStream<BR><BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 现在重定向输出的问题解决了，可以又出现了一个新的问题: 在控制台上看不到任何输出信息,输出的信息全部被定向到日志文件中.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 要解决这个问题还需要自己实现一个OutputStream,让OutputStream能同时写入多个输出.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 首先继承java.io.OutputStream,然后实现public abstract void write(int b) throws IOException; 并且覆写java.io.OutputStream中的其他的方法,具体的实现方式按照自己的需求来做,这里就不做出具体的实现了.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 通过实现自己实现OutputStream之后,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PrintStream printStreamOut = new PrintStream(outputStreamOut);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PrintStream printStreamErr = new PrintStream(outputStreamErr);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 中分别把outputStreamOut和outputStreamErr对象换成自己实现的OutputStream对象，这样就可以实现在一个OutputStream对象中进行多个输出操作.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 按照以上的思路进行的实现，可以完全把控制台的所有的输出写入到日志文件中,包括System.out.println这样的输出.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; snoics<img src ="http://www.blogjava.net/snoics/aggbug/33355.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/snoics/" target="_blank">snoics</a> 2006-03-03 09:10 <a href="http://www.blogjava.net/snoics/archive/2006/03/03/33355.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OpenCMS V6.03 + Oracle92 的中文版完整安装过程</title><link>http://www.blogjava.net/snoics/archive/2006/02/23/32066.html</link><dc:creator>snoics</dc:creator><author>snoics</author><pubDate>Thu, 23 Feb 2006 01:57:00 GMT</pubDate><guid>http://www.blogjava.net/snoics/archive/2006/02/23/32066.html</guid><wfw:comment>http://www.blogjava.net/snoics/comments/32066.html</wfw:comment><comments>http://www.blogjava.net/snoics/archive/2006/02/23/32066.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://www.blogjava.net/snoics/comments/commentRss/32066.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/snoics/services/trackbacks/32066.html</trackback:ping><description><![CDATA[1. 把opencms.war复制到Tomcat\webapps目录下,并复制classes12.jar到Tomcat\common\lib目录下,然后启动Tomcat,在启动完成之后,删除opencms.war<BR><BR>2. 在oracle中新建一个表空间opencms<BR><BR>3. 用<A href="http://localhost:8080/opencms/setup">http://localhost:8080/opencms/setup</A>进行安装<BR><BR>4. 安装过程中，数据库类型选择oracle9i, 用户名为system,另一个用户名是准备用来分配给opencms使用的用户名，这个地方可以按照具体的情况自己进行设置，这个用户可以是本身在oracle中并不存在的用户,安装程序会自动的创建这个用户,并把opencms表空间分配给该用户,接下来的表空间和Index的输入框中都输入opencms.<BR><BR>5. 接下去只需要按照提示一路Continue,最后当文件都导入完成之后，opencms就安装完成了，初始管理员和密码是Admin,admin<BR><BR>6. 安装完成之后，<BR>&nbsp; 修改/system/workplace/resources/commons/explorer.js <BR>&nbsp; 中的行: <BR>"&lt;td&gt;"+vr.langadress+"&amp;&lt;/td&gt;\n" <BR>为:"&lt;td nowrap&gt;"+vr.langadress+"&lt;/td&gt;\n" <BR><BR>然后把org.opencms.locales.zh.zip包复制到Tomcat\webapps\opencms\WEB-INF\packages\modules目录下,使用Admin进入opencms系统,选择Administrator管理界面,然后选择模块管理,导入org.opencms.locales.zh.zip包.然后解压org.opencms.locales.zh.zip,把org.opencms.locales.zh\system\workplace\locales\zh\messages下的templateone_form_zh.properties和templateone_zh.properties以及org整个文件夹复制到Tomcat\webapps\opencms\WEB-INF\classes目录下.<BR><BR>7.重启Tomcat,使用Admin进入opencms系统,选择Administrator管理界面,然后把语言类型设置成chinese,这时就能使用中文界面的opencms了<img src ="http://www.blogjava.net/snoics/aggbug/32066.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/snoics/" target="_blank">snoics</a> 2006-02-23 09:57 <a href="http://www.blogjava.net/snoics/archive/2006/02/23/32066.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>自己实现的一个加密算法</title><link>http://www.blogjava.net/snoics/archive/2006/02/20/31599.html</link><dc:creator>snoics</dc:creator><author>snoics</author><pubDate>Mon, 20 Feb 2006 02:45:00 GMT</pubDate><guid>http://www.blogjava.net/snoics/archive/2006/02/20/31599.html</guid><wfw:comment>http://www.blogjava.net/snoics/comments/31599.html</wfw:comment><comments>http://www.blogjava.net/snoics/archive/2006/02/20/31599.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/snoics/comments/commentRss/31599.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/snoics/services/trackbacks/31599.html</trackback:ping><description><![CDATA[<P>/*<BR>&nbsp;* Encrypt 字符串加密<BR>&nbsp;* <BR>&nbsp;* @author shiwei 2004-8-28<BR>&nbsp;*/</P>
<P>package com.snoics.base.util;<BR>/**<BR>&nbsp;* Encrypt 字符串加密<BR>&nbsp;* @author shiwei<BR>&nbsp;*<BR>&nbsp;*/<BR>public class Encrypt {</P>
<P>&nbsp;&nbsp;&nbsp; public Encrypt() {</P>
<P>&nbsp;&nbsp;&nbsp; }</P>
<P>&nbsp;&nbsp;&nbsp; /**<BR>&nbsp;&nbsp;&nbsp;&nbsp; * 加密字符串<BR>&nbsp;&nbsp;&nbsp;&nbsp; * @param encryptstring<BR>&nbsp;&nbsp;&nbsp;&nbsp; * @return String<BR>&nbsp;&nbsp;&nbsp;&nbsp; */<BR>&nbsp;&nbsp;&nbsp; public static String encrypt(String encryptstring){<BR>&nbsp;&nbsp;&nbsp; &nbsp;String newstring="";<BR>&nbsp;&nbsp;&nbsp; &nbsp;if(encryptstring.length()&lt;1){<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;return encryptstring;<BR>&nbsp;&nbsp;&nbsp; &nbsp;}else{<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;String tempstring=StringClass.remove(encryptstring,0,(int)(encryptstring.length()/3));<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;tempstring=StringClass.getConvertString(tempstring);<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;encryptstring=StringClass.getConvertString(encryptstring);<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;newstring=encrypt(encryptstring,tempstring);<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;return newstring;<BR>&nbsp;&nbsp;&nbsp; &nbsp;}<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; /**<BR>&nbsp;&nbsp;&nbsp;&nbsp; * 普通加密字符串<BR>&nbsp;&nbsp;&nbsp;&nbsp; * <BR>&nbsp;&nbsp;&nbsp;&nbsp; * @param encryptstring1<BR>&nbsp;&nbsp;&nbsp;&nbsp; * @param encryptstring2<BR>&nbsp;&nbsp;&nbsp;&nbsp; * @return String<BR>&nbsp;&nbsp;&nbsp;&nbsp; */<BR>&nbsp;&nbsp;&nbsp; public static String encrypt(String encryptstring1, String encryptstring2) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int strcount = 0; //字符串ASCII码的总和<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int newpasswordlength = 0; //生成的密码长度<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int seed1 = 0; //种子<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int seed2 = 0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String str = "";<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String newpassword = ""; //生成的密码<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char newchar;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int newcharint = 0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int thechar = 0;</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; str = encryptstring2 + encryptstring1;</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (str.length() &gt; 0) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; str.length(); i++) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strcount = strcount + str.charAt(i);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newpasswordlength = (strcount * strcount) / str.length() + str.length();</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int temp = 0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int temp2 = 0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while ((newpasswordlength &lt;= 0) || (newpasswordlength &gt; 100)) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; temp = temp + str.length();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; temp2 = temp + temp2;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newpasswordlength = 100;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; encryptstring1.length(); i++) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; seed1 = seed1 + encryptstring1.charAt(i);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; encryptstring2.length(); i++) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; seed2 = seed2 + encryptstring2.charAt(i);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; newpasswordlength; i++) {</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (i &lt; str.length()) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; thechar = str.charAt(i);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; thechar = str.charAt(i % (str.length() - 1))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; + str.charAt((str.length() - 1)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - (i % str.length()));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newcharint = thechar * (seed1 * (i + 1) + thechar);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newcharint = newString(newcharint);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newcharint = thechar * (seed2 * (i + 1) + thechar);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newcharint = newString(newcharint);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newchar = (char) newcharint;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newpassword = newpassword + String.valueOf(newchar);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newpassword = newpassword.substring((encryptstring2.length() + encryptstring1.length()) % 100);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return (newpassword);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ("空字符串不能被加密");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; }</P>
<P>&nbsp;&nbsp;&nbsp; private static int newString(int charint) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while ((charint &gt; 127) || (charint &lt; 32)) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (charint &gt; 127) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; charint = (charint - charint/2+1) / 2;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while(charint==60||charint==62||charint==34||charint==32||charint==39){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;charint = charint + 1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (charint &lt; 32) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; charint = (charint + charint/2-1) * 2;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while(charint==60||charint==62||charint==34||charint==32||charint==39){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;charint = charint + 1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return (charint);<BR>&nbsp;&nbsp;&nbsp; }<BR><BR>&nbsp;&nbsp;&nbsp; public static void main(String[] args) {<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; String theusername = "1abc1";<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String thepassword = "1def1";<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String theusername1 = "1def1";<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String thepassword1 = "1abc1";<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String newstring=Encrypt.encrypt(theusername,thepassword);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("newstring="+newstring);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String newstringa=Encrypt.encrypt(theusername1,thepassword1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("newstringa="+newstringa);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String newstring2=Encrypt.encrypt(newstring);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("newstring2="+newstring2);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String newstring3=Encrypt.encrypt(newstring2);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("newstring3="+newstring3);<BR>&nbsp;&nbsp;&nbsp; }<BR><BR>}<BR><BR><BR>执行结果:<BR><BR></P>newstring=*?C4%;V[GKOoUX[_#i%ptvy)!!#01&amp;c(46*o;=?y{?AB#4HI7%7LM:==U?@?AXBZFGHH`IJKfgO4QlmR7qrt::wxz=<BR>newstringa=(=A4$;TYDHLmTW[_#d#kpvx*!#-/$a(56)m89;vy@AB!2DE4$7LN::;P==?AYBXCDEE^IJKceL3NikR6opq89uvw;<BR>newstring2=ij887i)54)?!@A!!!Ab##eBf##ddd#efff#b#cadc#bc_!!]@<BR>newstring3=(qI}!+A!#z%%4?((<BR><img src ="http://www.blogjava.net/snoics/aggbug/31599.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/snoics/" target="_blank">snoics</a> 2006-02-20 10:45 <a href="http://www.blogjava.net/snoics/archive/2006/02/20/31599.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>自己用java做的一个类似网页爬虫的东西</title><link>http://www.blogjava.net/snoics/archive/2006/02/10/30086.html</link><dc:creator>snoics</dc:creator><author>snoics</author><pubDate>Fri, 10 Feb 2006 01:20:00 GMT</pubDate><guid>http://www.blogjava.net/snoics/archive/2006/02/10/30086.html</guid><wfw:comment>http://www.blogjava.net/snoics/comments/30086.html</wfw:comment><comments>http://www.blogjava.net/snoics/archive/2006/02/10/30086.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://www.blogjava.net/snoics/comments/commentRss/30086.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/snoics/services/trackbacks/30086.html</trackback:ping><description><![CDATA[<P><BR><BR>能实现整个网站的抓取,暂时还不支持javascript形式的连接<BR><BR>能抓取网页,网页中的所有的URL重新生成,图片,文件，包括所有格式的文件,全部都能保持原有的路径结构<BR><BR>抓取下的网页,通过apache搭建成网站,能在本地保持成一个完整的网站的形式<BR><BR>能直接使用，也能支持二次开发使用，不过暂时还会存在比较多的不完善的地方.<BR></P>
<P>提供内置线程,能控制抓取操作执行的时间,循环执行<BR><BR>东西还不是很完善,欢迎大家提出意见<BR><BR>下载地址&nbsp; <A HREF="/Files/snoics/snoics-reptile.rar">http://www.blogjava.net/Files/snoics/snoics-reptile.rar</A><A href="/Files/snoics/reptile.rar"></A></P><img src ="http://www.blogjava.net/snoics/aggbug/30086.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/snoics/" target="_blank">snoics</a> 2006-02-10 09:20 <a href="http://www.blogjava.net/snoics/archive/2006/02/10/30086.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在spring中使用代理摸板进行配置</title><link>http://www.blogjava.net/snoics/archive/2005/12/13/23598.html</link><dc:creator>snoics</dc:creator><author>snoics</author><pubDate>Tue, 13 Dec 2005 02:25:00 GMT</pubDate><guid>http://www.blogjava.net/snoics/archive/2005/12/13/23598.html</guid><wfw:comment>http://www.blogjava.net/snoics/comments/23598.html</wfw:comment><comments>http://www.blogjava.net/snoics/archive/2005/12/13/23598.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/snoics/comments/commentRss/23598.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/snoics/services/trackbacks/23598.html</trackback:ping><description><![CDATA[首先配置摸板<BR><BR>&nbsp;&lt;!-- 代理模板 --&gt;<BR>&nbsp;&lt;bean id="txProxy" lazy-init="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true"&gt;<BR>&nbsp;&nbsp;&lt;property name="transactionManager"&gt;&lt;ref local="transactionManager"/&gt;&lt;/property&gt;<BR>&nbsp;&nbsp;&lt;property name="transactionAttributes"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;props&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;prop key="*"&gt;PROPAGATION_REQUIRED&lt;/prop&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/props&gt;<BR>&nbsp;&nbsp;&lt;/property&gt;<BR>&nbsp;&lt;/bean&gt;<BR><BR><BR>摸板配置好以后,每次要添加一个新的代理,只需要类似下面这样添加<BR><BR>&nbsp;&lt;bean id="servicerProxy" parent="txProxy"&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="target"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ref local="serviceTarget"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/property&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;/bean&gt;<BR><BR>从而大大简化了代理的配置<img src ="http://www.blogjava.net/snoics/aggbug/23598.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/snoics/" target="_blank">snoics</a> 2005-12-13 10:25 <a href="http://www.blogjava.net/snoics/archive/2005/12/13/23598.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hibernate处理继承关系</title><link>http://www.blogjava.net/snoics/archive/2005/12/12/23504.html</link><dc:creator>snoics</dc:creator><author>snoics</author><pubDate>Mon, 12 Dec 2005 08:28:00 GMT</pubDate><guid>http://www.blogjava.net/snoics/archive/2005/12/12/23504.html</guid><wfw:comment>http://www.blogjava.net/snoics/comments/23504.html</wfw:comment><comments>http://www.blogjava.net/snoics/archive/2005/12/12/23504.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/snoics/comments/commentRss/23504.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/snoics/services/trackbacks/23504.html</trackback:ping><description><![CDATA[<P>--角色继承关系表<BR>create table SNOICS_RI&nbsp; (<BR>&nbsp;&nbsp; RI_PARE_ROLEID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR2(32)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR>&nbsp;&nbsp; RI_CHILD_ROLEID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR2(32)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR>&nbsp;&nbsp; constraint PK_SNOICS_RI primary key (RI_PARE_ROLEID, RI_CHILD_ROLEID)<BR>);<BR><BR>--角色表<BR>create table SNOICS_ROLE&nbsp; (<BR>&nbsp;&nbsp; ROLE_ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR2(32)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR>&nbsp;&nbsp; ROLE_NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR2(32)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; not null,<BR>&nbsp;&nbsp; ROLE_FORBID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR2(1),<BR>&nbsp;&nbsp; ROLE_DESCRIPT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR2(500),<BR>&nbsp;&nbsp; constraint PK_SNOICS_ROLE primary key (ROLE_ID)<BR>);<BR><BR>角色资料存放在SNOICS_ROLE中<BR>角色之间可以继承，而且可以多重继承,<BR>角色的继承关系存放在SNOICS_RI<BR><BR>可以使用SNOICS_ROLE自己到自己的多对多的关系来进行配置<BR><BR>-----------------------------------------------------------------------------------------------------<BR>POJO:<BR><BR>package com.snoics.cmp.security.dao.spring.hibernate.pojo;</P>
<P>import java.io.Serializable;<BR>import java.util.Set;<BR><BR>public class RolePOJO implements Serializable {<BR>&nbsp;private static final long serialVersionUID = -4776193447586778294L;<BR>&nbsp;private String roleid;<BR>&nbsp;private String rolename;<BR>&nbsp;private String roleforbid;<BR>&nbsp;private String roledescript;<BR>&nbsp;<BR>&nbsp;private Set user;<BR>&nbsp;private Set rolePermission;<BR>&nbsp;private Set roleP;<BR>&nbsp;private Set roleC;</P>
<P>&nbsp;/**<BR>&nbsp; * @return Returns the roleC.<BR>&nbsp; */<BR>&nbsp;public Set getRoleC() {<BR>&nbsp;&nbsp;return roleC;<BR>&nbsp;}</P>
<P>&nbsp;/**<BR>&nbsp; * @param roleC The roleC to set.<BR>&nbsp; */<BR>&nbsp;public void setRoleC(Set roleC) {<BR>&nbsp;&nbsp;this.roleC = roleC;<BR>&nbsp;}</P>
<P>&nbsp;/**<BR>&nbsp; * @return Returns the roleP.<BR>&nbsp; */<BR>&nbsp;public Set getRoleP() {<BR>&nbsp;&nbsp;return roleP;<BR>&nbsp;}</P>
<P>&nbsp;/**<BR>&nbsp; * @param roleP The roleP to set.<BR>&nbsp; */<BR>&nbsp;public void setRoleP(Set roleP) {<BR>&nbsp;&nbsp;this.roleP = roleP;<BR>&nbsp;}</P>
<P>&nbsp;/**<BR>&nbsp; * @return Returns the rolePermission.<BR>&nbsp; */<BR>&nbsp;public Set getRolePermission() {<BR>&nbsp;&nbsp;return rolePermission;<BR>&nbsp;}</P>
<P>&nbsp;/**<BR>&nbsp; * @param rolePermission The rolePermission to set.<BR>&nbsp; */<BR>&nbsp;public void setRolePermission(Set rolePermission) {<BR>&nbsp;&nbsp;this.rolePermission = rolePermission;<BR>&nbsp;}</P>
<P>&nbsp;/**<BR>&nbsp; * @return Returns the user.<BR>&nbsp; */<BR>&nbsp;public Set getUser() {<BR>&nbsp;&nbsp;return user;<BR>&nbsp;}</P>
<P>&nbsp;/**<BR>&nbsp; * @param user The user to set.<BR>&nbsp; */<BR>&nbsp;public void setUser(Set user) {<BR>&nbsp;&nbsp;this.user = user;<BR>&nbsp;}</P>
<P>&nbsp;/**<BR>&nbsp; * @return Returns the roledescript.<BR>&nbsp; */<BR>&nbsp;public String getRoledescript() {<BR>&nbsp;&nbsp;return roledescript;<BR>&nbsp;}</P>
<P>&nbsp;/**<BR>&nbsp; * @param roledescript The roledescript to set.<BR>&nbsp; */<BR>&nbsp;public void setRoledescript(String roledescript) {<BR>&nbsp;&nbsp;this.roledescript = roledescript;<BR>&nbsp;}</P>
<P>&nbsp;/**<BR>&nbsp; * @return Returns the roleforbid.<BR>&nbsp; */<BR>&nbsp;public String getRoleforbid() {<BR>&nbsp;&nbsp;return roleforbid;<BR>&nbsp;}</P>
<P>&nbsp;/**<BR>&nbsp; * @param roleforbid The roleforbid to set.<BR>&nbsp; */<BR>&nbsp;public void setRoleforbid(String roleforbid) {<BR>&nbsp;&nbsp;this.roleforbid = roleforbid;<BR>&nbsp;}</P>
<P>&nbsp;/**<BR>&nbsp; * @return Returns the roleid.<BR>&nbsp; */<BR>&nbsp;public String getRoleid() {<BR>&nbsp;&nbsp;return roleid;<BR>&nbsp;}</P>
<P>&nbsp;/**<BR>&nbsp; * @param roleid The roleid to set.<BR>&nbsp; */<BR>&nbsp;public void setRoleid(String roleid) {<BR>&nbsp;&nbsp;this.roleid = roleid;<BR>&nbsp;}</P>
<P>&nbsp;/**<BR>&nbsp; * @return Returns the rolename.<BR>&nbsp; */<BR>&nbsp;public String getRolename() {<BR>&nbsp;&nbsp;return rolename;<BR>&nbsp;}</P>
<P>&nbsp;/**<BR>&nbsp; * @param rolename The rolename to set.<BR>&nbsp; */<BR>&nbsp;public void setRolename(String rolename) {<BR>&nbsp;&nbsp;this.rolename = rolename;<BR>&nbsp;}<BR>}<BR><BR>-----------------------------------------------------------------------------------------------------<BR>role.hbm.xml中的继承关系部分的配置<BR><BR>&nbsp;&nbsp;&lt;set name="roleP" table="SNOICS_RI" cascade="all" inverse="false" lazy="true"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;key column="RI_CHILD_ROLEID"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;many-to-many column="RI_PARE_ROLEID" class="com.snoics.cmp.security.dao.spring.hibernate.pojo.RolePOJO"/&gt;<BR>&nbsp;&nbsp;&lt;/set&gt;<BR>&nbsp;&nbsp;&lt;set name="roleC" table="SNOICS_RI" cascade="all" inverse="false" lazy="true"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;key column="RI_PARE_ROLEID"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;many-to-many column="RI_CHILD_ROLEID" class="com.snoics.cmp.security.dao.spring.hibernate.pojo.RolePOJO"/&gt;<BR>&nbsp;&nbsp;&lt;/set&gt;<BR></P><img src ="http://www.blogjava.net/snoics/aggbug/23504.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/snoics/" target="_blank">snoics</a> 2005-12-12 16:28 <a href="http://www.blogjava.net/snoics/archive/2005/12/12/23504.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>取得当前执行程序使用的classpath</title><link>http://www.blogjava.net/snoics/archive/2005/11/11/19248.html</link><dc:creator>snoics</dc:creator><author>snoics</author><pubDate>Fri, 11 Nov 2005 01:06:00 GMT</pubDate><guid>http://www.blogjava.net/snoics/archive/2005/11/11/19248.html</guid><wfw:comment>http://www.blogjava.net/snoics/comments/19248.html</wfw:comment><comments>http://www.blogjava.net/snoics/archive/2005/11/11/19248.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/snoics/comments/commentRss/19248.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/snoics/services/trackbacks/19248.html</trackback:ping><description><![CDATA[<P>&nbsp;</P>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #008080">&nbsp;1</SPAN><IMG id=Codehighlighter1_4_202_Open_Image onclick="this.style.display='none'; Codehighlighter1_4_202_Open_Text.style.display='none'; Codehighlighter1_4_202_Closed_Image.style.display='inline'; Codehighlighter1_4_202_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_4_202_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_4_202_Closed_Text.style.display='none'; Codehighlighter1_4_202_Open_Image.style.display='inline'; Codehighlighter1_4_202_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN id=Codehighlighter1_4_202_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**&nbsp;*/</SPAN><SPAN id=Codehighlighter1_4_202_Open_Text><SPAN style="COLOR: #008000">/**</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #008080">&nbsp;2</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<FONT color=#008080>取得当前执行程序使用的classpath<BR></FONT></SPAN><SPAN style="COLOR: #008080">&nbsp;3</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</SPAN><SPAN style="COLOR: #808080">@author</SPAN><SPAN style="COLOR: #008000">&nbsp;snoics<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;4</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</SPAN><SPAN style="COLOR: #808080">@param</SPAN><SPAN style="COLOR: #008000">&nbsp;theclass&nbsp;Class<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;5</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</SPAN><SPAN style="COLOR: #808080">@param</SPAN><SPAN style="COLOR: #008000">&nbsp;path&nbsp;""&nbsp;or&nbsp;"/"<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;6</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</SPAN><SPAN style="COLOR: #808080">@param</SPAN><SPAN style="COLOR: #008000">&nbsp;encoding&nbsp;如果encoding==null将默认使用utf-8进行解码<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;7</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</SPAN><SPAN style="COLOR: #808080">@return</SPAN><SPAN style="COLOR: #008000">&nbsp;String<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;8</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">*/</SPAN></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">&nbsp;9</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_284_2857_Open_Image onclick="this.style.display='none'; Codehighlighter1_284_2857_Open_Text.style.display='none'; Codehighlighter1_284_2857_Closed_Image.style.display='inline'; Codehighlighter1_284_2857_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_284_2857_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_284_2857_Closed_Text.style.display='none'; Codehighlighter1_284_2857_Open_Image.style.display='inline'; Codehighlighter1_284_2857_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">static</SPAN><SPAN style="COLOR: #000000">&nbsp;String&nbsp;getRealPath(Class&nbsp;theclass,String&nbsp;path,String&nbsp;encoding)</SPAN><SPAN id=Codehighlighter1_284_2857_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_284_2857_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">10</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;realpath</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">""</SPAN><SPAN style="COLOR: #000000">;<BR></SPAN><SPAN style="COLOR: #008080">11</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_335_366_Open_Image onclick="this.style.display='none'; Codehighlighter1_335_366_Open_Text.style.display='none'; Codehighlighter1_335_366_Closed_Image.style.display='inline'; Codehighlighter1_335_366_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_335_366_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_335_366_Closed_Text.style.display='none'; Codehighlighter1_335_366_Open_Image.style.display='inline'; Codehighlighter1_335_366_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">(encoding</SPAN><SPAN style="COLOR: #000000">==</SPAN><SPAN style="COLOR: #0000ff">null</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN id=Codehighlighter1_335_366_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_335_366_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">12</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;encoding</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">utf-8</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">;<BR></SPAN><SPAN style="COLOR: #008080">13</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR></SPAN></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //如果path==null则把它设置为""<BR></SPAN><SPAN style="COLOR: #008080">14</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">getString(path);<BR></SPAN><SPAN style="COLOR: #008080">15</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_420_443_Open_Image onclick="this.style.display='none'; Codehighlighter1_420_443_Open_Text.style.display='none'; Codehighlighter1_420_443_Closed_Image.style.display='inline'; Codehighlighter1_420_443_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_420_443_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_420_443_Closed_Text.style.display='none'; Codehighlighter1_420_443_Open_Image.style.display='inline'; Codehighlighter1_420_443_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">(path.equals(</SPAN><SPAN style="COLOR: #000000">""</SPAN><SPAN style="COLOR: #000000">))&nbsp;</SPAN><SPAN id=Codehighlighter1_420_443_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_420_443_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">16</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">/</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">;<BR></SPAN><SPAN style="COLOR: #008080">17</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">18</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;jarflag</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">""</SPAN><SPAN style="COLOR: #000000">;<BR></SPAN><SPAN style="COLOR: #008080">19</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;classflag</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">""</SPAN><SPAN style="COLOR: #000000">;<BR></SPAN><SPAN style="COLOR: #008080">20</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">21</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;window_jarflag</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">jar:file:/</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">;<BR></SPAN><SPAN style="COLOR: #008080">22</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;window_classfalg</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">file:/</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">;<BR></SPAN><SPAN style="COLOR: #008080">23</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">24</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;other_jarflag</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">jar:file:</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">;<BR></SPAN><SPAN style="COLOR: #008080">25</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;other_classflag</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">file:</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">;<BR></SPAN><SPAN style="COLOR: #008080">26</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">27</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;endstring</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">!</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">;<BR></SPAN><SPAN style="COLOR: #008080">28</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;systemtype</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">""</SPAN><SPAN style="COLOR: #000000">;<BR></SPAN><SPAN style="COLOR: #008080">29</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">30</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;systemtype_windows</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">WINDOWS</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">;<BR></SPAN><SPAN style="COLOR: #008080">31</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">32</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;pachnamestringendstring</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">package&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">;<BR></SPAN><SPAN style="COLOR: #008080">33</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">34</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;packagestring</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">theclass.getPackage().toString();<BR></SPAN><SPAN style="COLOR: #008080">35</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">36</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;packagestring</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">packagestring.substring(pachnamestringendstring.length());<BR></SPAN><SPAN style="COLOR: #008080">37</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;packagestring</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">getSpecialReplaceString(packagestring,</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">.</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">,</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">/</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR></SPAN><SPAN style="COLOR: #008080">38</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">39</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;packagestringtemp</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">packagestring</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">/</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">;<BR></SPAN><SPAN style="COLOR: #008080">40</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">41</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;realpath</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">theclass.getResource(path).toString();<BR></SPAN><SPAN style="COLOR: #008080">42</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_1159_1222_Open_Image onclick="this.style.display='none'; Codehighlighter1_1159_1222_Open_Text.style.display='none'; Codehighlighter1_1159_1222_Closed_Image.style.display='inline'; Codehighlighter1_1159_1222_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_1159_1222_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1159_1222_Closed_Text.style.display='none'; Codehighlighter1_1159_1222_Open_Image.style.display='inline'; Codehighlighter1_1159_1222_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">try</SPAN><SPAN id=Codehighlighter1_1159_1222_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_1159_1222_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">43</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;realpath</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">URLDecoder.decode(realpath,encoding);<BR></SPAN><SPAN style="COLOR: #008080">44</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_1241_1276_Open_Image onclick="this.style.display='none'; Codehighlighter1_1241_1276_Open_Text.style.display='none'; Codehighlighter1_1241_1276_Closed_Image.style.display='inline'; Codehighlighter1_1241_1276_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_1241_1276_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1241_1276_Closed_Text.style.display='none'; Codehighlighter1_1241_1276_Open_Image.style.display='inline'; Codehighlighter1_1241_1276_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #0000ff">catch</SPAN><SPAN style="COLOR: #000000">(Exception&nbsp;e)</SPAN><SPAN id=Codehighlighter1_1241_1276_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_1241_1276_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">45</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace()&nbsp;;<BR></SPAN><SPAN style="COLOR: #008080">46</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">47</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">48</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;systemtype</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">System.getProperty(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">os.name</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">).toUpperCase().trim();<BR></SPAN><SPAN style="COLOR: #008080">49</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">50</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_1403_1474_Open_Image onclick="this.style.display='none'; Codehighlighter1_1403_1474_Open_Text.style.display='none'; Codehighlighter1_1403_1474_Closed_Image.style.display='inline'; Codehighlighter1_1403_1474_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_1403_1474_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1403_1474_Closed_Text.style.display='none'; Codehighlighter1_1403_1474_Open_Image.style.display='inline'; Codehighlighter1_1403_1474_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">(systemtype.startsWith(systemtype_windows))</SPAN><SPAN id=Codehighlighter1_1403_1474_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_1403_1474_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">51</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jarflag</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">window_jarflag;<BR></SPAN><SPAN style="COLOR: #008080">52</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classflag</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">window_classfalg;<BR></SPAN><SPAN style="COLOR: #008080">53</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_1479_1548_Open_Image onclick="this.style.display='none'; Codehighlighter1_1479_1548_Open_Text.style.display='none'; Codehighlighter1_1479_1548_Closed_Image.style.display='inline'; Codehighlighter1_1479_1548_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_1479_1548_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1479_1548_Closed_Text.style.display='none'; Codehighlighter1_1479_1548_Open_Image.style.display='inline'; Codehighlighter1_1479_1548_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #0000ff">else</SPAN><SPAN id=Codehighlighter1_1479_1548_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_1479_1548_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">54</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jarflag</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">other_jarflag;<BR></SPAN><SPAN style="COLOR: #008080">55</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classflag</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">other_classflag;<BR></SPAN><SPAN style="COLOR: #008080">56</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">57</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">58</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_1600_2391_Open_Image onclick="this.style.display='none'; Codehighlighter1_1600_2391_Open_Text.style.display='none'; Codehighlighter1_1600_2391_Closed_Image.style.display='inline'; Codehighlighter1_1600_2391_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_1600_2391_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1600_2391_Closed_Text.style.display='none'; Codehighlighter1_1600_2391_Open_Image.style.display='inline'; Codehighlighter1_1600_2391_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">(realpath.length()</SPAN><SPAN style="COLOR: #000000">&gt;=</SPAN><SPAN style="COLOR: #000000">jarflag.length())</SPAN><SPAN id=Codehighlighter1_1600_2391_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_1600_2391_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">59</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;flagstring</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">""</SPAN><SPAN style="COLOR: #000000">;<BR></SPAN><SPAN style="COLOR: #008080">60</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flagstring</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">realpath.substring(</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">,jarflag.length());<BR></SPAN><SPAN style="COLOR: #008080">61</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_1724_1792_Open_Image onclick="this.style.display='none'; Codehighlighter1_1724_1792_Open_Text.style.display='none'; Codehighlighter1_1724_1792_Closed_Image.style.display='inline'; Codehighlighter1_1724_1792_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_1724_1792_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1724_1792_Closed_Text.style.display='none'; Codehighlighter1_1724_1792_Open_Image.style.display='inline'; Codehighlighter1_1724_1792_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #000000">!</SPAN><SPAN style="COLOR: #000000">flagstring.equals(jarflag))</SPAN><SPAN id=Codehighlighter1_1724_1792_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_1724_1792_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">62</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flagstring</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">realpath.substring(</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">,classflag.length());<BR></SPAN><SPAN style="COLOR: #008080">63</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">64</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_1830_2014_Open_Image onclick="this.style.display='none'; Codehighlighter1_1830_2014_Open_Text.style.display='none'; Codehighlighter1_1830_2014_Closed_Image.style.display='inline'; Codehighlighter1_1830_2014_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_1830_2014_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1830_2014_Closed_Text.style.display='none'; Codehighlighter1_1830_2014_Open_Image.style.display='inline'; Codehighlighter1_1830_2014_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">(flagstring.equals(jarflag))</SPAN><SPAN id=Codehighlighter1_1830_2014_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_1830_2014_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">65</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;realpath</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">realpath.substring(jarflag.length());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //取得realpath中从开始到最后一个endstring字符串之前的<BR></SPAN><SPAN style="COLOR: #008080">66</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;realpath</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">StringClass.getPreString(realpath,endstring);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //取得realpath中从开始到最后一个<SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">/"</SPAN>字符串之前的<BR></SPAN><SPAN style="COLOR: #008080">67</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;realpath</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">StringClass.getPreString(realpath,</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">/</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">/</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">;<BR></SPAN><SPAN style="COLOR: #008080">68</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_2019_2384_Open_Image onclick="this.style.display='none'; Codehighlighter1_2019_2384_Open_Text.style.display='none'; Codehighlighter1_2019_2384_Closed_Image.style.display='inline'; Codehighlighter1_2019_2384_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_2019_2384_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2019_2384_Closed_Text.style.display='none'; Codehighlighter1_2019_2384_Open_Image.style.display='inline'; Codehighlighter1_2019_2384_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #0000ff">else</SPAN><SPAN id=Codehighlighter1_2019_2384_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_2019_2384_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">69</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;realpath</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">realpath.substring(classflag.length());<BR></SPAN><SPAN style="COLOR: #008080">70</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_2133_2376_Open_Image onclick="this.style.display='none'; Codehighlighter1_2133_2376_Open_Text.style.display='none'; Codehighlighter1_2133_2376_Closed_Image.style.display='inline'; Codehighlighter1_2133_2376_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_2133_2376_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2133_2376_Closed_Text.style.display='none'; Codehighlighter1_2133_2376_Open_Image.style.display='inline'; Codehighlighter1_2133_2376_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">(realpath.length()</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000">packagestringtemp.length())&nbsp;</SPAN><SPAN id=Codehighlighter1_2133_2376_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_2133_2376_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">71</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;subrelapath</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">realpath.substring(realpath.length()</SPAN><SPAN style="COLOR: #000000">-</SPAN><SPAN style="COLOR: #000000">packagestringtemp.length());<BR></SPAN><SPAN style="COLOR: #008080">72</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_2283_2367_Open_Image onclick="this.style.display='none'; Codehighlighter1_2283_2367_Open_Text.style.display='none'; Codehighlighter1_2283_2367_Closed_Image.style.display='inline'; Codehighlighter1_2283_2367_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_2283_2367_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2283_2367_Closed_Text.style.display='none'; Codehighlighter1_2283_2367_Open_Image.style.display='inline'; Codehighlighter1_2283_2367_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">(subrelapath.equals(packagestringtemp))</SPAN><SPAN id=Codehighlighter1_2283_2367_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_2283_2367_Open_Text><SPAN style="COLOR: #000000">{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //取得realpath中从开始到最后一个<SPAN style="COLOR: #000000">packagestring</SPAN>字符串之前的<BR></SPAN><SPAN style="COLOR: #008080">73</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;realpath</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">StringClass.getPreString(realpath,packagestring);<BR></SPAN><SPAN style="COLOR: #008080">74</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">75</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">76</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">77</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_2478_2802_Open_Image onclick="this.style.display='none'; Codehighlighter1_2478_2802_Open_Text.style.display='none'; Codehighlighter1_2478_2802_Closed_Image.style.display='inline'; Codehighlighter1_2478_2802_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_2478_2802_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2478_2802_Closed_Text.style.display='none'; Codehighlighter1_2478_2802_Open_Image.style.display='inline'; Codehighlighter1_2478_2802_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #0000ff">else</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">((realpath.length()</SPAN><SPAN style="COLOR: #000000">&gt;=</SPAN><SPAN style="COLOR: #000000">classflag.length())</SPAN><SPAN style="COLOR: #000000">&amp;&amp;</SPAN><SPAN style="COLOR: #000000">(realpath.length()</SPAN><SPAN style="COLOR: #000000">&lt;</SPAN><SPAN style="COLOR: #000000">jarflag.length()))</SPAN><SPAN id=Codehighlighter1_2478_2802_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_2478_2802_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">78</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;realpath</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">realpath.substring(classflag.length());<BR></SPAN><SPAN style="COLOR: #008080">79</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_2584_2795_Open_Image onclick="this.style.display='none'; Codehighlighter1_2584_2795_Open_Text.style.display='none'; Codehighlighter1_2584_2795_Closed_Image.style.display='inline'; Codehighlighter1_2584_2795_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_2584_2795_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2584_2795_Closed_Text.style.display='none'; Codehighlighter1_2584_2795_Open_Image.style.display='inline'; Codehighlighter1_2584_2795_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">(realpath.length()</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000">packagestringtemp.length())&nbsp;</SPAN><SPAN id=Codehighlighter1_2584_2795_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_2584_2795_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">80</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;subrelapath</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">realpath.substring(realpath.length()</SPAN><SPAN style="COLOR: #000000">-</SPAN><SPAN style="COLOR: #000000">packagestringtemp.length());<BR></SPAN><SPAN style="COLOR: #008080">81</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_2720_2790_Open_Image onclick="this.style.display='none'; Codehighlighter1_2720_2790_Open_Text.style.display='none'; Codehighlighter1_2720_2790_Closed_Image.style.display='inline'; Codehighlighter1_2720_2790_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_2720_2790_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2720_2790_Closed_Text.style.display='none'; Codehighlighter1_2720_2790_Open_Image.style.display='inline'; Codehighlighter1_2720_2790_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">(subrelapath.equals(packagestringtemp))</SPAN><SPAN id=Codehighlighter1_2720_2790_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY