﻿<?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/hardson/</link><description /><language>zh-cn</language><lastBuildDate>Tue, 28 Apr 2026 19:01:17 GMT</lastBuildDate><pubDate>Tue, 28 Apr 2026 19:01:17 GMT</pubDate><ttl>60</ttl><item><title>websphere/weblogic/tomcat/applet 设置远程调试</title><link>http://www.blogjava.net/hardson/archive/2008/09/10/228112.html</link><dc:creator>hardson</dc:creator><author>hardson</author><pubDate>Wed, 10 Sep 2008 04:12:00 GMT</pubDate><guid>http://www.blogjava.net/hardson/archive/2008/09/10/228112.html</guid><wfw:comment>http://www.blogjava.net/hardson/comments/228112.html</wfw:comment><comments>http://www.blogjava.net/hardson/archive/2008/09/10/228112.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hardson/comments/commentRss/228112.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hardson/services/trackbacks/228112.html</trackback:ping><description><![CDATA[<br />
websphere:<br />
管理控制台(<span id="ArticleContent1_ArticleContent1_lblContent">administractive console</span>)-&gt;应用程序服务器(application server)-&gt;服务器名(如server1)-&gt;调试服务(<span id="ArticleContent1_ArticleContent1_lblContent">Debug service</span>)-&gt;启动(勾上),其它默认,记住JVM调试端口-&gt;保存重启<br />
用<span id="ArticleContent1_ArticleContent1_lblContent">netstat -a查看JVM调试端口是否</span>处于监听状态,以确保调试服务已启动<br />
<br />
weblogic:<br />
修改startWeblogic.bat<br />
set PRODUCTION_MODE=true/false<br />
set DEBUG_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=1044,server=y,suspend=n
<br />
或(set DEBUG_OPTS=-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,address=7009,suspend=n)<br />
然后在启动命令中加入%DEBUG_OPTS%,如%JAVA_HOME%\bin\java %DEBUG_OPTS%...-Dweblogic.ProductionModeEnabled=%PRODUCTION_MODE%...<br />
<br />
tomcat:<br />
修改tomcat/bin/的catalina.bat文件<br />
SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5888 <br />
如在linux下,则<br />
CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5888"<br />
也就是把SET去掉，后面加双引号引起来,<br />
<br />
在eclipse中,<br />
debug-&gt;open debug dialog-&gt;<br />
设置好project ,host和port就行了,port就是以上配置的端口号(address)<br />
<br />
applet：<br />
<p style="text-indent: 2em;">1. 在程序运行机器上为Applet程序启动时自动开启JDWP服务。</p>
<p style="text-indent: 2em;">$&gt;cd $JAVA_HOME/bin</p>
<p style="text-indent: 2em;">$&gt;./ControlPanel</p>
<p style="text-indent: 2em;">在
随后弹出的Java Control Panel对话框中，选择Java Tab页，在Java Applet Runtime
Settings项中点击View按钮，在弹出的Java Runtime Versions对话框中设置Java Runtime
Parameters为：</p>
<p style="text-indent: 2em;">-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n</p>
<p style="text-indent: 2em;">注：Windows上可到控制面板中运行Java控制面板程序打开Java Control Panel对话框。</p>
<p style="text-indent: 2em;">2.
在Eclipse中建立Java Service
Client程序的工程，使其包含需要调试的源代码。编译打包目标代码并拷贝到上一步设置好的机器上的相应目录中。注意编译时要选择打开debug模式
（确保javac的调试相关参数为-g或没有。如果使用Eclipse编译，请使用Eclipse的相关设置，Eclipse默认的编译选项是打开
debug选项的）。</p>
<p style="text-indent: 2em;">3.在设置好的机器上启动目标程序。</p>
<p style="text-indent: 2em;">4.在Eclipse中使用Debug对话框（"Run"-&gt;"Debug"）建立一个Remote Java Application调试项目。填入下列信息：</p>
<p style="text-indent: 2em;">Host：程序执行机器的IP地址</p>
<p style="text-indent: 2em;">Port：8000 （就是是第一步设置的address参数）</p>
<p style="text-indent: 2em;">启动这个调试项目。</p>
<p style="text-indent: 2em;"><br />
</p>
<p style="text-indent: 2em;">提示：如果将suspend参数设为y，则每次启动程序都会自动挂起，直到远程调试机器连接上后才继续执行。这样就可以从程序入口处单步跟踪程序的执行过程了。</p>
<br />
<img src ="http://www.blogjava.net/hardson/aggbug/228112.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hardson/" target="_blank">hardson</a> 2008-09-10 12:12 <a href="http://www.blogjava.net/hardson/archive/2008/09/10/228112.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>db2 9.5 express 在ubuntu下的图形安装及中文处理</title><link>http://www.blogjava.net/hardson/archive/2008/05/13/200115.html</link><dc:creator>hardson</dc:creator><author>hardson</author><pubDate>Mon, 12 May 2008 17:09:00 GMT</pubDate><guid>http://www.blogjava.net/hardson/archive/2008/05/13/200115.html</guid><wfw:comment>http://www.blogjava.net/hardson/comments/200115.html</wfw:comment><comments>http://www.blogjava.net/hardson/archive/2008/05/13/200115.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hardson/comments/commentRss/200115.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hardson/services/trackbacks/200115.html</trackback:ping><description><![CDATA[参照<span class="postbody">http://wiki.ubuntu.org.cn/Java%E4%B8%AD%E6%96%87%E6%94%AF%E6%8C%81
</span><br />
1、下载db2exc_950_LNX_x86.tar.gz和语言包支持(中文支持需要这个包）db2_v95_linuxia32_nlpack.tar.gz<br />
2、将上面两个包考至/opt/并解压<br />
3、在系统管理的语言支持那里转入英文环境（中文环境无法显示中文），重启。<br />
4、在安装目录直接sudo ./db2setup按提示安装。<br />
5、复制微软字体simsun.ttc到/usr/share/fonts/truetype/songti/下，songti目录随便建。<br />
6、进入db2的java安装目录中的/opt/ibm/db2/V9.5/java/jdk32/jre/lib，sudo cp ./fontconfig.RedHat.3.properties.src ./fontconfig.properties<br />
（注：使用fontconfig.RedHat.5.properties.src不成功，没有偿试使用fontconfig.RedHat.4.properties.src）<br />
7、sudo gedit ./fontconfig.properties<br />
把第一部分的allfonts...改成<br />
# 中文字体支持部分=====<br />
allfonts.chinese-gb18030=-songti yuanti-medium-r-normal--*-%d-*-*-*-*-iso10646-1<br />
allfonts.chinese-gb18030.motif=-songti-medium-r-normal--*-%d-*-*-*-*-gb2312.1980-0<br />
allfonts.chinese-big5=-songti-medium-r-normal--*-%d-*-*-*-*-iso10646-1<br />
allfonts.chinese-big5.motif=-songti-medium-r-normal--*-%d-*-*-*-*-gb18030.2000-0<br />
# =====中文字体支持部分<br />
8、在后面的filename.部分的后面加入<br />
# 中文字体支持部分=====<br />
filename.-songti-medium-r-normal--*-%d-*-*-*-*-iso10646-1=/usr/share/fonts/truetype/songti/simsun.ttc<br />
filename.-songti-medium-r-normal--*-%d-*-*-*-*-gb2312.1980-0=/usr/share/fonts/truetype/songti/simsun.ttc<br />
filename.-songti-medium-r-normal--*-%d-*-*-*-*-gb18030.2000-0=/usr/share/fonts/truetype/songti/simsun.ttc<br />
# =====中文字体支持部分<br />
9、保存后用实例用户登录，在sqllib/bin/db2cc，中文出来了<br />
<br />
注：如果是64位系统，下载64位的db2安装文件和安装语言包，安装前先执行如下命令<br />
&nbsp;<br />
sudo apt-get install libstdc++5<br />
sudo apt-get install libaio-dev<br />
<br />
如果开启了特效，安装图形界面会显示空白，必须关掉特效来安装<br />
<img src ="http://www.blogjava.net/hardson/aggbug/200115.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hardson/" target="_blank">hardson</a> 2008-05-13 01:09 <a href="http://www.blogjava.net/hardson/archive/2008/05/13/200115.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>非基本数据类型对象列表比较器</title><link>http://www.blogjava.net/hardson/archive/2007/06/12/123548.html</link><dc:creator>hardson</dc:creator><author>hardson</author><pubDate>Tue, 12 Jun 2007 02:54:00 GMT</pubDate><guid>http://www.blogjava.net/hardson/archive/2007/06/12/123548.html</guid><wfw:comment>http://www.blogjava.net/hardson/comments/123548.html</wfw:comment><comments>http://www.blogjava.net/hardson/archive/2007/06/12/123548.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/hardson/comments/commentRss/123548.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hardson/services/trackbacks/123548.html</trackback:ping><description><![CDATA[写了一个比较器，实现功能如下：<br>有列表List list，list存放对象（如Person p等），对象里面有若干属性。<br>要求对列表按照列表对象的某个属性进行排序。列表对象类型未知，对象属性未知。<br>通过通知比较器列表对象类型和排序字段，以及升序或降序，来对列表进行排序<br>（其实就是实现复杂对象列表排序）<br>注：由于实际应用中，要排序的列表结果集已经得到，程序应用没有错误或异常，<br>比较器只实现排序功能，因此在比较器中封闭异常<br><br>本人实现代码如下，希望大家提供一些意见来完善<br><br>//比较器总接口类<br>package myutil.comparator;<br><br>import java.lang.reflect.InvocationTargetException;<br>import java.lang.reflect.Method;<br>import java.util.Comparator;<br><br>public abstract class ListComparator implements Comparator{<br>&nbsp;&nbsp;&nbsp; public static final int DATATYPE_STRING=1;//字符串类型<br>&nbsp;&nbsp;&nbsp; public static final int DATATYPE_DOUBLE=2;//双精度浮点型<br>&nbsp;&nbsp;&nbsp; public static final int DATATYPE_DATE=3;//日期类型<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; public static final int ORDER_ASC=100;//顺序<br>&nbsp;&nbsp;&nbsp; public static final int ORDER_DESC=101;//倒序<br><br>&nbsp;&nbsp;&nbsp; protected String colName="";//被比较的属性名称<br>&nbsp;&nbsp;&nbsp; protected Class cl=null;//被比较的列表对象的类型<br>&nbsp;&nbsp;&nbsp; protected int order=ORDER_ASC;//顺序或倒序，默认为顺序<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; /**<br>&nbsp;&nbsp;&nbsp; &nbsp;* 比较器的比较方法，在子类中实现<br>&nbsp;&nbsp;&nbsp; &nbsp;*/<br>&nbsp;&nbsp;&nbsp; public abstract int compare(Object o1, Object o2);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; /**<br>&nbsp;&nbsp;&nbsp; &nbsp;* 获取两个比较对象的指定属性(colName)的值<br>&nbsp;&nbsp;&nbsp; &nbsp;* @param obj1 要比较的一个对象<br>&nbsp;&nbsp;&nbsp; &nbsp;* @param obj2 要比较的另一个对象<br>&nbsp;&nbsp;&nbsp; &nbsp;* @return Object[]，被比较的两个对象中指定属性的值的数组<br>&nbsp;&nbsp;&nbsp; &nbsp;*/<br>&nbsp;&nbsp;&nbsp; protected Object[] getValueObj(Object obj1,Object obj2){<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(obj1==null || obj2==null)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return null;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; try {&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; int first=colName.charAt(0)-32;//获得字段名的首字母，并转化成大写<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; String mName="get"+(char)first+colName.substring(1);//获得字段的获取方法<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Method m = cl.getMethod(mName,null);//构造方法对象<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Object val1=m.invoke(obj1,null);//调用方法，得到对象1的colName属性值<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Object val2=m.invoke(obj2,null);//调用方法，得到对象2的colName属性值<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return new Object[]{val1,val2};//返回对象数组<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }&nbsp; catch (NoSuchMethodException e) {&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; e.printStackTrace();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } catch (IllegalArgumentException e) {&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; e.printStackTrace();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } catch (IllegalAccessException e) {&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; e.printStackTrace();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } catch (InvocationTargetException e) {&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; e.printStackTrace();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return null;<br>&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp; <br><br>&nbsp;&nbsp;&nbsp; /**<br>&nbsp;&nbsp;&nbsp; &nbsp;* 交换两个对象，用于控制升序或降序<br>&nbsp;&nbsp;&nbsp; &nbsp;* @param obj1<br>&nbsp;&nbsp;&nbsp; &nbsp;* @param obj2<br>&nbsp;&nbsp;&nbsp; &nbsp;* @return<br>&nbsp;&nbsp;&nbsp; &nbsp;*/<br>&nbsp;&nbsp;&nbsp; protected Object[] swap(Object obj1,Object obj2){<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(this.order==ORDER_DESC){<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Object oTmp=obj1;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; obj1=obj2;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; obj2=oTmp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return new Object[]{obj1,obj2};<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; /**<br>&nbsp;&nbsp;&nbsp; &nbsp;* @return 排序方式（顺序/倒序）<br>&nbsp;&nbsp;&nbsp; &nbsp;*/<br>&nbsp;&nbsp;&nbsp; public final int getOrder() {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return order;<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; /**<br>&nbsp;&nbsp;&nbsp; &nbsp;* @param 排序方式（顺序/倒序）<br>&nbsp;&nbsp;&nbsp; &nbsp;*/<br>&nbsp;&nbsp;&nbsp; public final void setOrder(int order) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; this.order = order;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; /**<br>&nbsp;&nbsp;&nbsp; &nbsp;* @return 列表包装类型<br>&nbsp;&nbsp;&nbsp; &nbsp;*/<br>&nbsp;&nbsp;&nbsp; public final Class getCl() {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return cl;<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; /**<br>&nbsp;&nbsp;&nbsp; &nbsp;* @param 列表包装类型<br>&nbsp;&nbsp;&nbsp; &nbsp;*/<br>&nbsp;&nbsp;&nbsp; public final void setCl(Class cl) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; this.cl = cl;<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; /**<br>&nbsp;&nbsp;&nbsp; &nbsp;* @return 排序字段<br>&nbsp;&nbsp;&nbsp; &nbsp;*/<br>&nbsp;&nbsp;&nbsp; public final String getColName() {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return colName;<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; /**<br>&nbsp;&nbsp;&nbsp; &nbsp;* @param 排序字段<br>&nbsp;&nbsp;&nbsp; &nbsp;*/<br>&nbsp;&nbsp;&nbsp; public final void setColName(String colName) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; this.colName = colName;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; public String toString(){<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; StringBuffer buf=new StringBuffer();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; buf.append("Column Name(colName):").append(this.colName).append(";");<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; buf.append("Class In List Name(c1):").append(cl.getName()).append(";");<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; buf.append("Order Type(order):").append(this.order).append(".");<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return buf.toString();<br>&nbsp;&nbsp;&nbsp; }<br>}<br><br>//工厂类<br>package myutil.comparator;<br><br>public class ListComparatorFactory {<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; public static final ListComparator getListComparator(int dataType){<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; switch(dataType){<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; case ListComparator.DATATYPE_STRING:<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return new StringListComparator();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; case ListComparator.DATATYPE_DOUBLE:<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return new NumberListComparator();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; case ListComparator.DATATYPE_DATE:<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return new DateListComparator();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; default:&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return new DefaultListComparator();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp; <br>}<br>//默认实现类<br>package myutil.comparator;<br><br>public class DefaultListComparator extends ListComparator{<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; public int compare(Object obj1, Object obj2) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Object swapObj[]=this.swap(obj1,obj2);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Object obj[]=this.getValueObj(swapObj[0],swapObj[1]);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(obj==null)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return 0;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Comparable cmp1=(Comparable)obj[0];<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Comparable cmp2=(Comparable)obj[1];<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return cmp1.compareTo(cmp2);&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; public String toString(){&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return super.toString();<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; <br>}<br><br><br>//比较字段为日期型的实现类<br>package myutil.comparator;<br><br>import java.text.DateFormat;<br>import java.text.ParseException;<br>import java.text.SimpleDateFormat;<br>import java.util.Date;<br><br>public class DateListComparator extends ListComparator{<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; public int compare(Object obj1, Object obj2) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Object swapObj[]=this.swap(obj1,obj2);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Object obj[]=this.getValueObj(swapObj[0],swapObj[1]);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(obj==null)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return 0;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; DateFormat format=new SimpleDateFormat("yyyyMMddhhmmss");<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Comparable cmp1,cmp2;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; try{<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cmp1=format.parse(obj[0]==null?"00000000000000":obj[0].toString());&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }catch(ParseException pe){<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cmp1=new Date(0);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; try {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cmp2=format.parse(obj[1]==null?"00000000000000":obj[1].toString());<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } catch (ParseException e) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cmp2=new Date(0);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return cmp1.compareTo(cmp2);&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; public String toString(){&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return super.toString();<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; <br>}<br>//比较字段为数字型的实现类，兼容整数，浮点数<br>package myutil.comparator;<br><br>public class NumberListComparator extends ListComparator{<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; public int compare(Object obj1, Object obj2) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Object swapObj[]=this.swap(obj1,obj2);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Object obj[]=this.getValueObj(swapObj[0],swapObj[1]);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(obj==null)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return 0;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Comparable cmp1,cmp2;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; try{<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cmp1=new Double(obj[0]==null?"0":obj[0].toString());<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }catch(NumberFormatException nfe){<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cmp1=new Double(0);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; try{<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cmp2=new Double(obj[1]==null?"0":obj[1].toString());<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }catch(NumberFormatException nfe){<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cmp2=new Double(0);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return cmp1.compareTo(cmp2);&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; public String toString(){&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return super.toString();<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; <br>}<br><br>//比较字段为字符串型的实现类<br>package myutil.comparator;<br><br>public class StringListComparator extends ListComparator{<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; public int compare(Object obj1, Object obj2) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Object swapObj[]=this.swap(obj1,obj2);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Object obj[]=this.getValueObj(swapObj[0],swapObj[1]);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(obj==null)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return 0;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Comparable cmp1=obj[0]==null?"":obj[0].toString();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Comparable cmp2=obj[1]==null?"":obj[1].toString();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return cmp1.compareTo(cmp2);&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; public String toString(){&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return super.toString();<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; <br>}<br><br>//应用测试示例<br>package myutil.comparator.test;<br><br>public class MyFile {<br><br>&nbsp;&nbsp;&nbsp; private int age;<br>&nbsp;&nbsp;&nbsp; /**<br>&nbsp;&nbsp;&nbsp; &nbsp;* @return the age<br>&nbsp;&nbsp;&nbsp; &nbsp;*/<br>&nbsp;&nbsp;&nbsp; public final int getAge() {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return age;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; /**<br>&nbsp;&nbsp;&nbsp; &nbsp;* @param age the age to set<br>&nbsp;&nbsp;&nbsp; &nbsp;*/<br>&nbsp;&nbsp;&nbsp; public final void setAge(int age) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; this.age = age;<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; public void display() {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // TODO Auto-generated method stub<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; public String toString(){<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return String.valueOf(age);<br>&nbsp;&nbsp;&nbsp; }<br>}<br><br>package myutil.comparator.test;<br><br>import java.util.ArrayList;<br>import java.util.Collections;<br>import java.util.List;<br>import java.util.Random;<br><br>import myutil.comparator.ListComparator;<br>import myutil.comparator.ListComparatorFactory;<br><br><br>public class SortTest {<br><br>&nbsp;&nbsp;&nbsp; public List doIt(){<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; List list=new ArrayList(10);&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Random ran=new Random();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; for(int i=0;i&lt;10;i++){<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; MyFile mf=new MyFile();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; mf.setAge(ran.nextInt(100));<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; list.add(mf);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return list;<br><br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; /**<br>&nbsp;&nbsp;&nbsp; &nbsp;* @param args<br>&nbsp;&nbsp;&nbsp; &nbsp;*/<br>&nbsp;&nbsp;&nbsp; public static void main(String[] args) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; SortTest t=new SortTest();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; List list=t.doIt();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ListComparator cm=ListComparatorFactory.getListComparator(ListComparator.DATATYPE_DOUBLE);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cm.setColName("age");<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cm.setCl(MyFile.class);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; System.out.println(cm);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cm.setOrder(ListComparator.ORDER_DESC);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Collections.sort(list,cm);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; for(int i=0;i&lt;list.size();i++){<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; System.out.println(list.get(i));<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br><br>}<br><br><br><br>  <img src ="http://www.blogjava.net/hardson/aggbug/123548.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hardson/" target="_blank">hardson</a> 2007-06-12 10:54 <a href="http://www.blogjava.net/hardson/archive/2007/06/12/123548.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>db2检查一致性</title><link>http://www.blogjava.net/hardson/archive/2006/09/08/68616.html</link><dc:creator>hardson</dc:creator><author>hardson</author><pubDate>Fri, 08 Sep 2006 14:58:00 GMT</pubDate><guid>http://www.blogjava.net/hardson/archive/2006/09/08/68616.html</guid><wfw:comment>http://www.blogjava.net/hardson/comments/68616.html</wfw:comment><comments>http://www.blogjava.net/hardson/archive/2006/09/08/68616.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hardson/comments/commentRss/68616.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hardson/services/trackbacks/68616.html</trackback:ping><description><![CDATA[
		<span class="javascript" id="text2915967" style="FONT-SIZE: 12px">
				<font face="Verdana">db2 select tabschema,tabname, status from syscat.tables where status='C'<br /><br />检查一致性<br />db2 set integrity for &lt;table_name&gt; immediate checked</font>
		</span>
<img src ="http://www.blogjava.net/hardson/aggbug/68616.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hardson/" target="_blank">hardson</a> 2006-09-08 22:58 <a href="http://www.blogjava.net/hardson/archive/2006/09/08/68616.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>