<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    2008年9月10日

    websphere/weblogic/tomcat/applet 設(shè)置遠(yuǎn)程調(diào)試


    websphere:
    管理控制臺(tái)(administractive console)->應(yīng)用程序服務(wù)器(application server)->服務(wù)器名(如server1)->調(diào)試服務(wù)(Debug service)->啟動(dòng)(勾上),其它默認(rèn),記住JVM調(diào)試端口->保存重啟
    netstat -a查看JVM調(diào)試端口是否處于監(jiān)聽狀態(tài),以確保調(diào)試服務(wù)已啟動(dòng)

    weblogic:
    修改startWeblogic.bat
    set PRODUCTION_MODE=true/false
    set DEBUG_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=1044,server=y,suspend=n
    或(set DEBUG_OPTS=-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,address=7009,suspend=n)
    然后在啟動(dòng)命令中加入%DEBUG_OPTS%,如%JAVA_HOME%\bin\java %DEBUG_OPTS%...-Dweblogic.ProductionModeEnabled=%PRODUCTION_MODE%...

    tomcat:
    修改tomcat/bin/的catalina.bat文件
    SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5888
    如在linux下,則
    CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5888"
    也就是把SET去掉,后面加雙引號(hào)引起來,

    在eclipse中,
    debug->open debug dialog->
    設(shè)置好project ,host和port就行了,port就是以上配置的端口號(hào)(address)

    applet:

    1. 在程序運(yùn)行機(jī)器上為Applet程序啟動(dòng)時(shí)自動(dòng)開啟JDWP服務(wù)。

    $>cd $JAVA_HOME/bin

    $>./ControlPanel

    在 隨后彈出的Java Control Panel對(duì)話框中,選擇Java Tab頁,在Java Applet Runtime Settings項(xiàng)中點(diǎn)擊View按鈕,在彈出的Java Runtime Versions對(duì)話框中設(shè)置Java Runtime Parameters為:

    -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n

    注:Windows上可到控制面板中運(yùn)行Java控制面板程序打開Java Control Panel對(duì)話框。

    2. 在Eclipse中建立Java Service Client程序的工程,使其包含需要調(diào)試的源代碼。編譯打包目標(biāo)代碼并拷貝到上一步設(shè)置好的機(jī)器上的相應(yīng)目錄中。注意編譯時(shí)要選擇打開debug模式 (確保javac的調(diào)試相關(guān)參數(shù)為-g或沒有。如果使用Eclipse編譯,請(qǐng)使用Eclipse的相關(guān)設(shè)置,Eclipse默認(rèn)的編譯選項(xiàng)是打開 debug選項(xiàng)的)。

    3.在設(shè)置好的機(jī)器上啟動(dòng)目標(biāo)程序。

    4.在Eclipse中使用Debug對(duì)話框("Run"->"Debug")建立一個(gè)Remote Java Application調(diào)試項(xiàng)目。填入下列信息:

    Host:程序執(zhí)行機(jī)器的IP地址

    Port:8000 (就是是第一步設(shè)置的address參數(shù))

    啟動(dòng)這個(gè)調(diào)試項(xiàng)目。


    提示:如果將suspend參數(shù)設(shè)為y,則每次啟動(dòng)程序都會(huì)自動(dòng)掛起,直到遠(yuǎn)程調(diào)試機(jī)器連接上后才繼續(xù)執(zhí)行。這樣就可以從程序入口處單步跟蹤程序的執(zhí)行過程了。


    posted @ 2008-09-10 12:12 hardson 閱讀(2395) | 評(píng)論 (0)編輯 收藏

    2008年5月13日

    db2 9.5 express 在ubuntu下的圖形安裝及中文處理

    參照http://wiki.ubuntu.org.cn/Java%E4%B8%AD%E6%96%87%E6%94%AF%E6%8C%81
    1、下載db2exc_950_LNX_x86.tar.gz和語言包支持(中文支持需要這個(gè)包)db2_v95_linuxia32_nlpack.tar.gz
    2、將上面兩個(gè)包考至/opt/并解壓
    3、在系統(tǒng)管理的語言支持那里轉(zhuǎn)入英文環(huán)境(中文環(huán)境無法顯示中文),重啟。
    4、在安裝目錄直接sudo ./db2setup按提示安裝。
    5、復(fù)制微軟字體simsun.ttc到/usr/share/fonts/truetype/songti/下,songti目錄隨便建。
    6、進(jìn)入db2的java安裝目錄中的/opt/ibm/db2/V9.5/java/jdk32/jre/lib,sudo cp ./fontconfig.RedHat.3.properties.src ./fontconfig.properties
    (注:使用fontconfig.RedHat.5.properties.src不成功,沒有償試使用fontconfig.RedHat.4.properties.src)
    7、sudo gedit ./fontconfig.properties
    把第一部分的allfonts...改成
    # 中文字體支持部分=====
    allfonts.chinese-gb18030=-songti yuanti-medium-r-normal--*-%d-*-*-*-*-iso10646-1
    allfonts.chinese-gb18030.motif=-songti-medium-r-normal--*-%d-*-*-*-*-gb2312.1980-0
    allfonts.chinese-big5=-songti-medium-r-normal--*-%d-*-*-*-*-iso10646-1
    allfonts.chinese-big5.motif=-songti-medium-r-normal--*-%d-*-*-*-*-gb18030.2000-0
    # =====中文字體支持部分
    8、在后面的filename.部分的后面加入
    # 中文字體支持部分=====
    filename.-songti-medium-r-normal--*-%d-*-*-*-*-iso10646-1=/usr/share/fonts/truetype/songti/simsun.ttc
    filename.-songti-medium-r-normal--*-%d-*-*-*-*-gb2312.1980-0=/usr/share/fonts/truetype/songti/simsun.ttc
    filename.-songti-medium-r-normal--*-%d-*-*-*-*-gb18030.2000-0=/usr/share/fonts/truetype/songti/simsun.ttc
    # =====中文字體支持部分
    9、保存后用實(shí)例用戶登錄,在sqllib/bin/db2cc,中文出來了

    注:如果是64位系統(tǒng),下載64位的db2安裝文件和安裝語言包,安裝前先執(zhí)行如下命令
     
    sudo apt-get install libstdc++5
    sudo apt-get install libaio-dev

    如果開啟了特效,安裝圖形界面會(huì)顯示空白,必須關(guān)掉特效來安裝

    posted @ 2008-05-13 01:09 hardson 閱讀(1595) | 評(píng)論 (0)編輯 收藏

    2007年6月12日

    非基本數(shù)據(jù)類型對(duì)象列表比較器

    寫了一個(gè)比較器,實(shí)現(xiàn)功能如下:
    有列表List list,list存放對(duì)象(如Person p等),對(duì)象里面有若干屬性。
    要求對(duì)列表按照列表對(duì)象的某個(gè)屬性進(jìn)行排序。列表對(duì)象類型未知,對(duì)象屬性未知。
    通過通知比較器列表對(duì)象類型和排序字段,以及升序或降序,來對(duì)列表進(jìn)行排序
    (其實(shí)就是實(shí)現(xiàn)復(fù)雜對(duì)象列表排序)
    注:由于實(shí)際應(yīng)用中,要排序的列表結(jié)果集已經(jīng)得到,程序應(yīng)用沒有錯(cuò)誤或異常,
    比較器只實(shí)現(xiàn)排序功能,因此在比較器中封閉異常

    本人實(shí)現(xiàn)代碼如下,希望大家提供一些意見來完善

    //比較器總接口類
    package myutil.comparator;

    import java.lang.reflect.InvocationTargetException;
    import java.lang.reflect.Method;
    import java.util.Comparator;

    public abstract class ListComparator implements Comparator{
        public static final int DATATYPE_STRING=1;//字符串類型
        public static final int DATATYPE_DOUBLE=2;//雙精度浮點(diǎn)型
        public static final int DATATYPE_DATE=3;//日期類型
       
        public static final int ORDER_ASC=100;//順序
        public static final int ORDER_DESC=101;//倒序

        protected String colName="";//被比較的屬性名稱
        protected Class cl=null;//被比較的列表對(duì)象的類型
        protected int order=ORDER_ASC;//順序或倒序,默認(rèn)為順序

           
        /**
         * 比較器的比較方法,在子類中實(shí)現(xiàn)
         */
        public abstract int compare(Object o1, Object o2);
           
        /**
         * 獲取兩個(gè)比較對(duì)象的指定屬性(colName)的值
         * @param obj1 要比較的一個(gè)對(duì)象
         * @param obj2 要比較的另一個(gè)對(duì)象
         * @return Object[],被比較的兩個(gè)對(duì)象中指定屬性的值的數(shù)組
         */
        protected Object[] getValueObj(Object obj1,Object obj2){
            if(obj1==null || obj2==null)
                return null;
            try {           
                int first=colName.charAt(0)-32;//獲得字段名的首字母,并轉(zhuǎn)化成大寫
                String mName="get"+(char)first+colName.substring(1);//獲得字段的獲取方法
                Method m = cl.getMethod(mName,null);//構(gòu)造方法對(duì)象
                Object val1=m.invoke(obj1,null);//調(diào)用方法,得到對(duì)象1的colName屬性值
                Object val2=m.invoke(obj2,null);//調(diào)用方法,得到對(duì)象2的colName屬性值
                return new Object[]{val1,val2};//返回對(duì)象數(shù)組
            }  catch (NoSuchMethodException e) {           
                e.printStackTrace();
            } catch (IllegalArgumentException e) {           
                e.printStackTrace();
            } catch (IllegalAccessException e) {           
                e.printStackTrace();
            } catch (InvocationTargetException e) {           
                e.printStackTrace();
            }       
            return null;
        }   

        /**
         * 交換兩個(gè)對(duì)象,用于控制升序或降序
         * @param obj1
         * @param obj2
         * @return
         */
        protected Object[] swap(Object obj1,Object obj2){
            if(this.order==ORDER_DESC){
                Object oTmp=obj1;
                obj1=obj2;
                obj2=oTmp;           
            }
            return new Object[]{obj1,obj2};
        }
        /**
         * @return 排序方式(順序/倒序)
         */
        public final int getOrder() {
            return order;
        }

        /**
         * @param 排序方式(順序/倒序)
         */
        public final void setOrder(int order) {
            this.order = order;
        }
       
       
        /**
         * @return 列表包裝類型
         */
        public final Class getCl() {
            return cl;
        }

        /**
         * @param 列表包裝類型
         */
        public final void setCl(Class cl) {
            this.cl = cl;
        }

        /**
         * @return 排序字段
         */
        public final String getColName() {
            return colName;
        }

        /**
         * @param 排序字段
         */
        public final void setColName(String colName) {
            this.colName = colName;
        }
       
        public String toString(){
            StringBuffer buf=new StringBuffer();
            buf.append("Column Name(colName):").append(this.colName).append(";");
            buf.append("Class In List Name(c1):").append(cl.getName()).append(";");
            buf.append("Order Type(order):").append(this.order).append(".");
            return buf.toString();
        }
    }

    //工廠類
    package myutil.comparator;

    public class ListComparatorFactory {
       
        public static final ListComparator getListComparator(int dataType){
           
            switch(dataType){
            case ListComparator.DATATYPE_STRING:
                return new StringListComparator();
            case ListComparator.DATATYPE_DOUBLE:
                return new NumberListComparator();
            case ListComparator.DATATYPE_DATE:
                return new DateListComparator();
            default:           
                return new DefaultListComparator();
            }       
        }   
    }
    //默認(rèn)實(shí)現(xiàn)類
    package myutil.comparator;

    public class DefaultListComparator extends ListComparator{
       
        public int compare(Object obj1, Object obj2) {
            Object swapObj[]=this.swap(obj1,obj2);
            Object obj[]=this.getValueObj(swapObj[0],swapObj[1]);
            if(obj==null)
                return 0;
            Comparable cmp1=(Comparable)obj[0];
            Comparable cmp2=(Comparable)obj[1];
            return cmp1.compareTo(cmp2);       
        }
       
        public String toString(){       
            return super.toString();
        }
       
    }


    //比較字段為日期型的實(shí)現(xiàn)類
    package myutil.comparator;

    import java.text.DateFormat;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;

    public class DateListComparator extends ListComparator{
       
        public int compare(Object obj1, Object obj2) {
            Object swapObj[]=this.swap(obj1,obj2);
            Object obj[]=this.getValueObj(swapObj[0],swapObj[1]);
            if(obj==null)
                return 0;
            DateFormat format=new SimpleDateFormat("yyyyMMddhhmmss");
            Comparable cmp1,cmp2;
            try{
                cmp1=format.parse(obj[0]==null?"00000000000000":obj[0].toString());           
            }catch(ParseException pe){
                cmp1=new Date(0);
            }
            try {
                cmp2=format.parse(obj[1]==null?"00000000000000":obj[1].toString());
            } catch (ParseException e) {
                cmp2=new Date(0);
            }
            return cmp1.compareTo(cmp2);       
        }
       
        public String toString(){       
            return super.toString();
        }
       
    }
    //比較字段為數(shù)字型的實(shí)現(xiàn)類,兼容整數(shù),浮點(diǎn)數(shù)
    package myutil.comparator;

    public class NumberListComparator extends ListComparator{
       
        public int compare(Object obj1, Object obj2) {
            Object swapObj[]=this.swap(obj1,obj2);
            Object obj[]=this.getValueObj(swapObj[0],swapObj[1]);
            if(obj==null)
                return 0;
            Comparable cmp1,cmp2;
            try{
                cmp1=new Double(obj[0]==null?"0":obj[0].toString());
            }catch(NumberFormatException nfe){
                cmp1=new Double(0);
            }
            try{
                cmp2=new Double(obj[1]==null?"0":obj[1].toString());
            }catch(NumberFormatException nfe){
                cmp2=new Double(0);
            }
            return cmp1.compareTo(cmp2);       
        }
       
        public String toString(){       
            return super.toString();
        }
       
    }

    //比較字段為字符串型的實(shí)現(xiàn)類
    package myutil.comparator;

    public class StringListComparator extends ListComparator{
       
        public int compare(Object obj1, Object obj2) {
            Object swapObj[]=this.swap(obj1,obj2);
            Object obj[]=this.getValueObj(swapObj[0],swapObj[1]);
            if(obj==null)
                return 0;
            Comparable cmp1=obj[0]==null?"":obj[0].toString();
            Comparable cmp2=obj[1]==null?"":obj[1].toString();
            return cmp1.compareTo(cmp2);       
        }
       
        public String toString(){       
            return super.toString();
        }
       
    }

    //應(yīng)用測(cè)試示例
    package myutil.comparator.test;

    public class MyFile {

        private int age;
        /**
         * @return the age
         */
        public final int getAge() {
            return age;
        }
        /**
         * @param age the age to set
         */
        public final void setAge(int age) {
            this.age = age;
        }

        public void display() {
            // TODO Auto-generated method stub
           
        }

        public String toString(){
            return String.valueOf(age);
        }
    }

    package myutil.comparator.test;

    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;
    import java.util.Random;

    import myutil.comparator.ListComparator;
    import myutil.comparator.ListComparatorFactory;


    public class SortTest {

        public List doIt(){
            List list=new ArrayList(10);   
            Random ran=new Random();
            for(int i=0;i<10;i++){
                MyFile mf=new MyFile();
                mf.setAge(ran.nextInt(100));
                list.add(mf);
            }
            return list;

        }
        /**
         * @param args
         */
        public static void main(String[] args) {
            SortTest t=new SortTest();
            List list=t.doIt();
            ListComparator cm=ListComparatorFactory.getListComparator(ListComparator.DATATYPE_DOUBLE);
            cm.setColName("age");
            cm.setCl(MyFile.class);
            System.out.println(cm);
            cm.setOrder(ListComparator.ORDER_DESC);
            Collections.sort(list,cm);
            for(int i=0;i<list.size();i++){
                System.out.println(list.get(i));
            }
        }

    }



    posted @ 2007-06-12 10:54 hardson 閱讀(1300) | 評(píng)論 (1)編輯 收藏

    2006年9月8日

    db2檢查一致性

    db2 select tabschema,tabname, status from syscat.tables where status='C'

    檢查一致性
    db2 set integrity for?<table_name> immediate checked

    posted @ 2006-09-08 22:58 hardson 閱讀(627) | 評(píng)論 (0)編輯 收藏

    僅列出標(biāo)題  
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    收藏夾

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 免费国产黄网站在线观看| 国产亚洲一区二区三区在线观看 | 69av免费视频| www一区二区www免费| 香蕉大伊亚洲人在线观看| 亚洲avav天堂av在线不卡| 亚洲视频在线免费| 国产精品另类激情久久久免费| 国产高清免费视频| 99精品视频免费在线观看| a毛片在线看片免费| 亚洲精品黄色视频在线观看免费资源| 亚洲精品国产suv一区88| 亚洲伦理一二三四| 久久久久亚洲AV无码专区首JN| 亚洲AV人无码激艳猛片| 亚洲综合日韩久久成人AV| 亚洲乱码中文字幕综合234| 国产又黄又爽又刺激的免费网址 | 亚洲熟妇AV一区二区三区宅男| 亚洲精品无码久久久久久久| 亚洲天堂男人天堂| 亚洲宅男永久在线| 精品亚洲成a人片在线观看| 亚洲AV人人澡人人爽人人夜夜| 亚洲国产精品无码成人片久久 | 国产精品美女久久久免费 | 国产精品免费观看久久| 国产香蕉免费精品视频| 99视频全部免费精品全部四虎| 最近2019免费中文字幕视频三| 在线看片免费人成视久网| 99视频在线免费| 67194国产精品免费观看| 人妻丰满熟妇无码区免费| 最近2019中文字幕免费大全5 | 亚洲最大中文字幕| 亚洲中文无码线在线观看| 亚洲国产区男人本色在线观看| 在线观看日本亚洲一区| 久久亚洲中文无码咪咪爱|