锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
鐢變簬鏄浜庡垱涓氭湡鐨勫洟闃燂紝闇瑕佷粠鍓嶅彴鐓ч【鍒板悗鍙幫紝鎵浠ュ笇鏈涗綘鐨刯s涔熷緢鍑鴻壊錛屽綋鐒跺悓鏍鳳紝浣犲鏋滃惉榪噅query銆乸rototype銆乪xt-js絳塷pensource浼氭洿濂?
鏈夊叴瓚g殑鍏勫紵鍙互璁塊棶鐨勭綉绔?http://www.j.cn
鍙互鐩存帴綆鍘嗗彂鍒版垜鐨勯偖綆?hama916@gmail.com
褰撶劧鎻愪緵涓氱晫棰嗗厛鐨勫緟閬囨爣鍑嗕笌鏅嬪崌鏈轟細錛堣惤浜嗕織濂楋級
瀵逛簡錛屾榪庡寳浜湰鍦板疄涔犵敓(澶栧湴灝辯畻浜嗭紝鎻愪緵涓嶄簡瀹胯垗)錛屽笇鏈涗綘鐨勫勾杞匯佹縺鎯呬負鎴戜滑鐨勫洟闃熷甫鏉ユ椿鍔?-)
]]>
The short answer is to add the following options when the JVM is started:-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
There are a number of ways you can do this depending on how you normally start Tomcat:
JPDA_ADDRESS=8000
and JPDA_TRANSPORT=dt_socket
and then start tomcat using catalina jpda start(sh catalina.sh jpda start)
.
Alternatively, you can set the java program's command-line arguments for the JPDA settings. For Tomcat, you specify them in the CATALINA_OPTS environment variable and the catalina.sh or catalina.bat script adds the value of the environment variable to the java command that starts Tomcat; for example:
bash:
declare -x CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000" $JWSDP_HOME/bin/catalina.sh start
csh:
setenv CATALINA_OPTS "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000" $JWSDP_HOME/bin/catalina.sh start
Windows:
set JPDA_TRANSPORT=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000 %JWSDP_HOME%\bin\catalina start
The port does not need to be set to 8000, it may be any value appropriate for your system.
Whilst this is very useful in development it should not be used in production because of both security and performance implications.
This answer assumes that you have a project set up with all of the fixings and have some idea of what you're doing in this respect. If not then thats really outside the scope of this topic and more in the scope of you needing to go to eclipse.org and read up on how to use your ide, and maybe practice a little bit before you come back to this. We're also going to assume you have some idea of what a debugger is and how to use one.
Make sure tomcat is started and that your app is deployed and the sources, etc are all defined as resources in your app. If you have a servlet or something, set a breakpoint where its sure to hit on the next request. Go to "Run->Debug...". Click on "Remote Java Applications", then click "New". Type in the title and all. Notice that port 8000 from the Tomcat instructions. Save and run. Eclipse will connect to the VM that Tomcat is running under. Wow, that was easy! Now go type the url to submit to your servlet or whatever in your browser. Boom you hit the breakpoint right? Have fun!
cvs tag release_1_0
寮濮嬩竴涓柊鐨勯噷紼嬬錛?br />cvs commit -r 2 鏍囪鎵鏈夋枃浠跺紑濮嬭繘鍏?.x鐨勫紑鍙?/p>
娉ㄦ剰錛欳VS閲岀殑revsion鍜岃蔣浠跺寘鐨勫彂甯冪増鏈彲浠ユ病鏈夌洿鎺ョ殑鍏崇郴銆備絾鎵鏈夋枃浠朵嬌鐢ㄥ拰鍙戝竷鐗堟湰涓鑷寸殑鐗堟湰鍙鋒瘮杈冩湁鍔╀簬緇存姢銆?/i>
鐗堟湰鍒嗘敮鐨勫緩绔?/u>
鍦ㄥ紑鍙戦」鐩殑2.x鐗堟湰鐨勬椂鍊欏彂鐜?.x鏈夐棶棰橈紝浣?.x鍙堜笉鏁㈢敤錛屽垯浠庡厛鍓嶆爣璁扮殑閲岀▼紕戯細release_1_0瀵煎嚭涓涓垎鏀?release_1_0_patch
cvs rtag -b -r release_1_0 release_1_0_patch proj_dir
涓浜涗漢鍏堝湪鍙﹀涓涓洰褰曚笅瀵煎嚭release_1_0_patch榪欎釜鍒嗘敮錛氳В鍐?.0涓殑绱фラ棶棰橈紝
cvs checkout -r release_1_0_patch
鑰屽叾浠栦漢鍛樹粛鏃у湪欏圭洰鐨勪富騫插垎鏀?.x涓婂紑鍙?/p>
鍦╮elease_1_0_patch涓婁慨姝i敊璇悗錛屾爣璁頒竴涓?.0鐨勯敊璇慨姝g増鏈彿
cvs tag release_1_0_patch_1
濡傛灉2.0璁や負榪欎簺閿欒淇敼鍦?.0閲屼篃闇瑕侊紝涔熷彲浠ュ湪2.0鐨勫紑鍙戠洰褰曚笅鍚堝茍release_1_0_patch_1涓殑淇敼鍒板綋鍓嶄唬鐮佷腑錛?br />cvs update -j release_1_0_patch_1
銆銆鈥滅編鍥界殑鍐涜垂鍗犲叏鐞冨啗璐瑰紑鏀殑涓鍗婏紝鑰屼腑鍥界殑浜哄彛鏄編鍥界殑浜斿叚鍊嶃備負浠涔堟寚璐d腑鍥斤紵鈥濋殢鍚庯紝娌欑搴鋒彁楂樺棑闊籌紝鈥滅編鍥借濡備綍鍋氾紝榪欐槸緹庡浗鐨勪富鏉冿紝浣嗙編鍥戒笉搴斿憡璇変腑鍥借濡備綍鍋氾紒鈥?/p>
銆銆鍦ㄨ皥鍙婂彴婀炬湭鏉ユ槸鍚﹀彲鑳藉甯冣滅嫭绔嬧濇椂錛屾矙紲栧悍鏇存槸鐩磋█涓嶈錛氣滃彴婀懼甯冣樼嫭绔嬧欑殑閭d竴鍒伙紝涓嶇璋佹敮鎸佸畠錛屼腑鍥介兘灝嗗埆鏃犻夋嫨銆傗︹﹀湪榪欎釜闂涓婏紝浠諱綍浜洪兘涓嶅簲璇ユ湁浠諱綍騫繪兂銆傛垜浠皢涓嶆儨涓鍒囦唬浠楓傗?/p>
銆銆娌欑搴瘋繕琛ュ厖閬擄細鈥滃浜庝腑鍥斤紝涓瀵擱鍦熸瘮鐢熷懡鏇存湁浠峰箋傚湪榪欎竴鐐逛笂錛屾垜浠案榪滀笉浼氶緙┿傗?/p>
銆銆榪欎竴緋誨垪澶ц儐璦璁猴紝璁╄タ鏂瑰ぇ璺岀溂闀滐紝涔熻鍥戒漢棰囨劅鎰忓銆傝屾儫鏈夌啛鎮(zhèn)夋矙紲栧悍鐨勪漢鐭ラ亾錛岃繖鏄叾涓璐鏍箋?/p>
銆銆鈥滃吀鍨嬬殑鐜板疄涓諱箟澶栦氦鈥?/strong>
銆銆涓鍚戝ぇ鑳嗘暍璦鐨勬矙紲栧悍鏈潵灝變笉涔忔嫢瓚搞傞殢鐫BBC鑺傜洰鐨勬挱鏀撅紝鍗婁釜鏈堟潵錛屸滄矙寮忚褰曗濊繀閫熼闈$綉涓婁腑鏂囪鍧涘拰鍗氬銆傝緹庡浗浜衡淪hut up鈥濈殑鑻辨枃璁茶瘽褰曢煶鐢氳嚦琚綉姘戝壀杈戝嚭鏉ワ紝鏀懼埌緗戜笂渚涗漢涓嬭澆銆?/p>
銆銆涓轟綍娌欑搴風(fēng)殑榪欐鍙戣█鍙楀埌緗戞皯濡傛榪芥崸錛?span class="yqlink">
娓呭崕澶у鍐涙帶闂涓撳鏉庡漿鏁欐巿璇勪環(huán)璇達紝鈥?娌欑搴?璇寸殑鏄疄璇濄傗?/p>銆銆鍦ㄤ釜浜洪鏍間笂錛岃繖涓啘姘戝嚭韜佸枩鐖辯湅姝︿緺灝忚鐨勫浜ゅ畼鎵胯鈥滀笉澶х浉淇″浜よ緸浠も濓紝浠栦篃涓嶈璦鑷繁璁茶瘽綺楋紝涔犳儻鏈夎瘽閮芥憜鍦ㄦ闈笂璋堛傜編鍥芥姤綰稿娌欐皬璁茶瘽椋庢牸鐨勮瘎璁烘槸鈥滀護浜哄悆鎯婄殑鍧︾巼(surprisingly frank)鈥濄傚湪鏉庡漿鐪嬫潵錛屾矙紲栧悍鐨勫浜ゆ濊礬灞炰簬姣旇緝鍏稿瀷鐨勭幇瀹炰富涔夛紝铏界劧浠栬嚜宸辨湭蹇呮剰璇嗗埌銆?/p>
銆銆鈥滅幇瀹炰富涔夌殑鎬濊礬灝辨槸鎸夌収鍥藉鍒╃泭鍜屽疄鍔涙潵璁$畻鍥藉涔嬮棿鐨勪簰鍔ㄣ傝繖鏍風(fēng)殑鎬濊礬綆鏄庛佹竻鏅幫紝瀹規(guī)槗鐞嗚В銆傛矙紲栧悍鐢ㄦ鎬濊礬榪涜浜ゆ祦鏃訛紝瀵規(guī)柟褰撶劧浼氭劅瑙夊埌鈥樺潶鐜団欍傗?/p>
銆銆鏉庡漿璇達紝鈥滄澶栵紝娌欑搴瘋礋璐e啗鎺у浜ょ殑鏃舵湡涔熸槸涓浗瀹炶川鎬у弬涓庡浗闄呭啗鎺х殑鏃舵湡錛屽浗瀹舵姇鍏ョ殑鐮旂┒鍔涘害寰堝ぇ銆傚湪寰堝瀹炶川鎬у啗鎺ч棶棰樹笂錛屼腑鍥藉繀欏昏〃杈炬槑紜殑鎬佸害錛岃屼笖涔熸湁瀵圭瓥鐮旂┒鍩虹鍋氳繖鏍風(fēng)殑琛ㄦ併傚湪寮濮嬮樁孌碉紝澶栧浗浜哄榪欎簺鍧︾巼紜疄姣旇緝鍚冩儕銆傗?/p>
TestComparator.java
package com.fangq.collections;
import java.util.Arrays;
import org.apache.commons.lang.math.RandomUtils;
/**
聽*
聽* @author聽fangq
聽*/
public class TestComparator {
聽public static void main(String[] args){
聽聽StudentDTO[] dtos = new StudentDTO[10];
聽聽for(int i=0;i<dtos.length;i++){
聽聽聽dtos[i] = new StudentDTO();
聽聽聽dtos[i].setXh("xh"+i);
聽聽聽dtos[i].setXm("xm"+i);
聽聽聽dtos[i].setNl(String.valueOf(i+RandomUtils.nextInt(20)));
聽聽}
聽聽System.out.println("鎺掑簭鍓?==============");
聽聽for(int j=0;j<dtos.length;j++)
聽聽System.out.println("濮撳悕錛?+dtos[j].getXm()+"騫撮緞錛?+dtos[j].getNl());
聽聽
聽聽Arrays.sort(dtos,new StudentComparator());
聽聽System.out.println("鎺掑簭鍚?==============");
聽聽for(int k=0;k<dtos.length;k++)
聽聽System.out.println("濮撳悕錛?+dtos[k].getXm()+"騫撮緞錛?+dtos[k].getNl());
聽聽
聽}
}
@author聽 Li Gong
Li Gong鑷粠JXTA欏圭洰姝e紡鍚姩錛屽埌2001騫?鏈堟寮忓彂甯冿紝鍒?001騫?鏈圝avaOne涓婄殑浠嬬粛灝變竴鐩存媴浠籎XTA欏圭洰鐨勫伐紼嬫寚瀵煎強棣栧腑璁捐甯堛傛鍓嶏紝鍦↗DK 1.1鍜?.2鐗堟湰鐨勫紑鍙戞湡闂達紝浠栦富綆$潃Java瀹夊叏鍜岀綉緇滃皬緇勩備粬鍦ㄦ竻鍗庡ぇ瀛﹁幏寰椾簡瀛﹀+鍜岀澹浣嶏紝浠庡墤妗ュぇ瀛﹁幏寰椾簡鍗氬+瀛︿綅銆備粬鏄疘EEE Internet Computing鍜孉CM TISSEC鐨勭紪濮斾細鎴愬憳錛屼篃鍦↖EEE S&P銆両EEE CSFW鍜孉CM CCS鎷呬換瑕佽亴銆備粬鎷ユ湁6欏圭編鍥戒笓鍒╋紝宸茬粡鎾板啓浜?0綃囨妧鏈鏂囧拰2鏈功錛屽茍涓斾簬1994騫磋幏寰椾簡IEEE閫氫俊緇勭粐棰佸彂鐨凩eonard G. Abraham濂栥傜洰鍓嶏紝浠栧湪鍖椾含鎷呬換Sun鍏徃鐨勪腑鍥藉伐紼嬬爺絀舵墍鐨勬葷粡鐞嗐?br />
java Test
璇ュ懡浠ょ殑java錛屽憡璇夋搷浣滅郴緇熷紑濮嬭繍琛宩ava铏氭嫙鏈?Test 蹇呴』鏈塵ain鏂規(guī)硶錛屾槸璇pplication綰跨▼鐨勮搗鐐癸紝鍏朵粬鎵鏈夌嚎紼嬮兘鐢辮繖涓垵濮嬬嚎紼嬪惎鍔?/p>
鍦╦ava铏氭嫙鏈哄唴閮ㄦ湁涓ょ綰跨▼錛氫竴縐嶆槸瀹堟姢綰跨▼錛屼竴縐嶉潪瀹堟姢綰跨▼銆傚畧鎶ょ嚎紼嬮氬父鏄櫄鎷熸満鑷繁浣跨敤鐨勶紝姣斿鎵ц鍨冨溇鏀墮泦鐨勭嚎紼嬨傚綋鐒秊ava涔熷彲浠ユ妸鍒涘緩鐨勭嚎紼嬫爣璁頒負瀹堟姢綰跨▼