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

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

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

    如鵬網(wǎng) 大學(xué)生計(jì)算機(jī)學(xué)習(xí)社區(qū)

    CowNew開源團(tuán)隊(duì)

    http://www.cownew.com 郵件請(qǐng)聯(lián)系 about521 at 163.com

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      363 隨筆 :: 2 文章 :: 808 評(píng)論 :: 0 Trackbacks

    CowNew開源團(tuán)隊(duì)網(wǎng)站 http://www.cownew.com
    論壇 http://www.cownew.com/newpeng/
    轉(zhuǎn)載請(qǐng)注明此版權(quán)信息

    今天做的事情比較雜,所以感想也比較雜:
    1、java程序的遠(yuǎn)程調(diào)試。
    “JPDA是sun jdk自帶的遠(yuǎn)程調(diào)試機(jī)制。它提供了一套標(biāo)準(zhǔn)的調(diào)試接口,可以從虛擬機(jī)一級(jí)允許外界用特定協(xié)議探測虛擬機(jī)內(nèi)部的運(yùn)作細(xì)節(jié)。只要你裝了jdk 1.2以上的sun jdk,就已經(jīng)有了jpda支持。 只要是用標(biāo)準(zhǔn)JDK中java.exe運(yùn)行的應(yīng)用,就可以用jpda進(jìn)行遠(yuǎn)程調(diào)試。以web應(yīng)用的開發(fā)為例,servlet和ejb的調(diào)試一直不是一件太容易的事情。雖然jbuilder、eclipse等有一些常見的應(yīng)用服務(wù)器,如tomcat, weblogic 6.x,的調(diào)試插件,但是用法各不相同,而且很容易由于版本問題導(dǎo)致出現(xiàn)各種問題,而且對(duì)于有的服務(wù)器則沒有相應(yīng)的IDE插件。
    JPDA就不一樣。由于它是java平臺(tái)的標(biāo)準(zhǔn)功能之一,所以我們其實(shí)可以調(diào)試任何用jdk運(yùn)行的程序。只需要做兩件事:
    (1)、 在被調(diào)試的應(yīng)用上,增加幾個(gè)java虛擬機(jī)啟動(dòng)參數(shù),讓它啟動(dòng)后進(jìn)入調(diào)試服務(wù)器模式;
    (2) 在本機(jī)或網(wǎng)絡(luò)中另一臺(tái)機(jī)器上用某種jpda客戶端程序,attach到被調(diào)試的應(yīng)用程序(可以通過socket或共享內(nèi)存兩種方式)。jpda本身只是一個(gè)接口,調(diào)試工具的好用與否就要看其對(duì)jpda的應(yīng)用如何。jdb是sun jdk自帶的命令行jpda調(diào)試客戶程序,你可以用命令行設(shè)置斷點(diǎn),查看變量值,等等。但不是很直觀。而jbuilder、eclipse的jpda調(diào)試器就做到了將jpda圖形化,可以直觀的設(shè)置斷點(diǎn),跟蹤程序,查看量值,等等。 ”---本段改編自“http://www.cjsdn.com/post/print?bid=7&id=1376”

    以elipse+tomcat為例:
    (1)打開Tomcat 5.0\bin下的catalina.bat,在“set JPDA= ”下加入如下兩行:
    set JPDA_TRANSPORT=dt_socket
    set JPDA_ADDRESS=8787
    (2)啟動(dòng)tomcat
    (3)在eclipse的debug中新建一個(gè)“Remote Java Application”,工程選擇被調(diào)試的遠(yuǎn)程程序的源碼工程,host填127.0.0.1,port為8787
    (4)運(yùn)行調(diào)試。
    這樣我們就可以在eclipse中下斷點(diǎn)調(diào)試tomcat中運(yùn)行的程序了。讓那些亂七八糟的插件哪涼快去哪呆著吧。
    注意一定要保證eclipse工程中的源碼和tomcat中運(yùn)行的程序一致。

    2、調(diào)用對(duì)象的wait方法的時(shí)候有可能會(huì)拋出InterruptedException異常,以前我是把這個(gè)異常再次拋出,今天運(yùn)行發(fā)現(xiàn)當(dāng)這個(gè)異常拋出的時(shí)候,線程就死掉了。因此不能簡單的將此異常re-throw,必須處理它,比如JDBMonitor中的BlockedChannel的take方法就要如下改寫:
    public synchronized Object take()
    ?{
    ??if (container.isEmpty())
    ??{
    ???try
    ???{
    ????wait();
    ???} catch (InterruptedException e)
    ???{
    ????return null;
    ???}
    ??}
    ??Object obj = container.pop();
    ??return obj;
    ?}

    3、windows下運(yùn)行l(wèi)inux的最好的工具
    最近一直想驗(yàn)證JDBMonitor在linux底下是否有bug,但是聽人說過,linux安裝不當(dāng)很容易發(fā)生數(shù)據(jù)丟失,因此一直不敢裝。而用virtual PC,VMWare之類的軟件又太消耗內(nèi)存,而且需要虛擬機(jī)安裝完成再安裝linux。今天無意中搜索到一個(gè)windows下的linux虛擬機(jī):MetroPipe VPM 。
    下載地址:
    http://www.metropipe.net/ProductsPVPMDownload.shtml
    解壓后直接運(yùn)行其中的qemu-win.bat就能啟動(dòng)Linux。不用安裝,啟動(dòng)關(guān)閉都非常快,而且占用內(nèi)存相對(duì)來說比較小。
    唯一一個(gè)缺點(diǎn)就是默認(rèn)就進(jìn)入圖形模式,抽時(shí)間看看怎么配置讓它啟動(dòng)以后進(jìn)入字符模式。
    詳細(xì)可以參考:http://www.highand.com/viewthread.php?tid=545

    ?

    posted on 2006-06-13 01:06 CowNew開源團(tuán)隊(duì) 閱讀(967) 評(píng)論(0)  編輯  收藏

    只有注冊用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 日韩中文字幕免费| 妻子5免费完整高清电视| 亚洲高清无码专区视频| 国产亚洲精品美女久久久久| 免费可以在线看A∨网站| 亚洲人成黄网在线观看| 91精品免费国产高清在线| 亚洲成人黄色在线| 国产成人A在线观看视频免费| 亚洲国产精品专区| 四虎成人免费大片在线| 亚洲A∨精品一区二区三区下载| 性感美女视频在线观看免费精品| 亚洲综合av一区二区三区不卡 | 免费一级不卡毛片| 亚洲国产成人久久综合一| 久久精品中文字幕免费| 亚洲天堂一区二区三区四区| 成人免费毛片内射美女-百度| 亚洲国产一区二区三区在线观看| 国产免费午夜a无码v视频| jizz免费一区二区三区| 亚洲国产精品一区| 天堂在线免费观看中文版| 日韩a毛片免费观看| 午夜国产精品免费观看| 亚洲国产欧洲综合997久久| 免费欧洲美女牲交视频| 中国精品一级毛片免费播放| 亚洲网站在线观看| 日韩免费视频一区| 中文字幕免费不卡二区| 亚洲娇小性xxxx| 国产91精品一区二区麻豆亚洲 | 亚洲日韩国产欧美一区二区三区 | 亚洲精品成人片在线播放| 永久在线免费观看| 亚洲精品乱码久久久久久| 国产曰批免费视频播放免费s | 亚洲成a人不卡在线观看| 国产小视频在线观看免费|