锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲人成色7777在线观看,亚洲va在线va天堂va888www,国产亚洲大尺度无码无码专线http://www.tkk7.com/hulizhong/category/39077.html----Java's Slave----<br> ***Java's Host***zh-cnThu, 16 Apr 2009 07:27:37 GMTThu, 16 Apr 2009 07:27:37 GMT60杞?FindBugs錛岀 1 閮ㄥ垎: 鎻愰珮浠g爜璐ㄩ噺http://www.tkk7.com/hulizhong/archive/2009/04/16/265948.html浜岃儭浜岃儭Thu, 16 Apr 2009 05:12:00 GMThttp://www.tkk7.com/hulizhong/archive/2009/04/16/265948.htmlhttp://www.tkk7.com/hulizhong/comments/265948.htmlhttp://www.tkk7.com/hulizhong/archive/2009/04/16/265948.html#Feedback0http://www.tkk7.com/hulizhong/comments/commentRss/265948.htmlhttp://www.tkk7.com/hulizhong/services/trackbacks/265948.html

FindBugs錛岀 1 閮ㄥ垎: 鎻愰珮浠g爜璐ㄩ噺

浣跨敤 FindBugs 鐨勫師鍥犲拰鏂規硶

developerWorks
鏂囨。閫夐」

鏈樉紺洪渶瑕?JavaScript 鐨勬枃妗i夐」

灝嗘墦鍗版満鐨勭増闈㈣緗垚妯悜鎵撳嵃妯″紡

鎵撳嵃鏈〉

灝嗘欏典綔涓虹數瀛愰偖浠跺彂閫? vspace=

灝嗘欏典綔涓虹數瀛愰偖浠跺彂閫?/strong>


綰у埆錛?鍒濈駭

Chris Grindstaff (chris@gstaff.org), 杞歡宸ョ▼甯?br />

2004 騫? 5 鏈? 25 鏃?/p>

闈? 鎬佸垎鏋愬伐鍏鋒壙璇烘棤闇寮鍙戜漢鍛樿垂鍔插氨鑳芥壘鍑轟唬鐮佷腑宸叉湁鐨勭己闄楓傚綋鐒訛紝濡傛灉鏈夊騫寸殑緙栧啓緇忛獙錛屽氨浼氱煡閬撹繖浜涙壙璇哄茍涓嶆槸涓瀹氳兘鍏戠幇銆傚敖綆″姝わ紝濂界殑闈欐佸垎鏋愬伐鍏? 浠嶇劧鏄伐鍏風涓殑鏃犱環涔嬪疂銆傚湪榪欎釜鐢變袱閮ㄥ垎緇勬垚鐨勭郴鍒楁枃绔犵殑絎竴閮ㄥ垎涓紝楂樼駭杞歡宸ョ▼甯?Chris Grindstaff 鍒嗘瀽浜?FindBugs 濡備綍甯姪鎻愰珮浠g爜璐ㄩ噺浠ュ強鎺掗櫎闅愬惈鐨勭己闄楓?/blockquote>

浠g爜璐ㄩ噺宸ュ叿鐨勪竴涓棶棰樻槸瀹冧滑瀹規槗涓哄紑鍙戜漢鍛樻彁渚涘ぇ閲忎絾騫墮潪鐪熸闂鐨勯棶棰樷斺斿嵆 浼棶棰橈紙false positives錛?/em>銆? 鍑虹幇浼棶棰樻椂錛屽紑鍙戜漢鍛樿瀛︿細蹇界暐宸ュ叿鐨勮緭鍑烘垨鑰呮斁寮冨畠銆侳indBugs 鐨勮璁¤?David Hovemeyer 鍜?William Pugh 娉ㄦ剰鍒頒簡榪欎釜闂錛屽茍鍔姏鍑忓皯浠栦滑鎵鎶ュ憡鐨勪吉闂鏁伴噺銆備笌鍏朵粬闈欐佸垎鏋愬伐鍏蜂笉鍚岋紝FindBugs 涓嶆敞閲嶆牱寮忔垨鑰呮牸寮忥紝瀹冭瘯鍥懼彧瀵繪壘鐪熸鐨勭己闄鋒垨鑰呮綔鍦ㄧ殑鎬ц兘闂銆?

FindBugs 鏄粈涔堬紵

FindBugs 鏄竴涓潤鎬佸垎鏋愬伐鍏鳳紝瀹冩鏌ョ被鎴栬?JAR 鏂囦歡錛屽皢瀛楄妭鐮佷笌涓緇勭己闄鋒ā寮忚繘琛屽姣斾互鍙戠幇鍙兘鐨勯棶棰樸傛湁浜嗛潤鎬佸垎鏋愬伐鍏鳳紝灝卞彲浠ュ湪涓嶅疄闄呰繍琛岀▼搴忕殑鎯呭喌瀵硅蔣浠惰繘琛屽垎鏋愩備笉鏄氳繃鍒嗘瀽綾繪枃浠剁殑褰㈠紡鎴栫粨 鏋勬潵紜畾紼嬪簭鐨勬剰鍥撅紝鑰屾槸閫氬父浣跨敤 Visitor 妯″紡錛堣鍙傞槄 鍙傝冭祫鏂?/a>錛夈傚浘 1 鏄劇ず浜嗗垎鏋愪竴涓尶鍚嶉」鐩殑緇撴灉錛堜負闃叉鍙曠殑鐘姜錛岃繖閲屼笉緇欏嚭瀹冪殑鍚嶅瓧錛夛細


鍥?1. FindBugs UI
Configure Detector 鐨勫浘褰㈣〃紺? src=

璁╂垜浠湅鍑犱釜 FindBugs 鍙互鍙戠幇鐨勯棶棰樸?/p>

鏈郴鍒楃殑絎簩綃囨枃绔?#8220; 緙栧啓鑷畾涔夋嫻嬪櫒”瑙i噴浜嗗浣曠紪鍐欒嚜瀹氫箟媯嫻嬪櫒錛?浠ヤ究鍙戠幇鐗瑰畾浜庡簲鐢ㄧ▼搴忕殑闂銆?





鍥為〉棣?/strong>


闂鍙戠幇鐨勪緥瀛?/span>

涓嬮潰鐨勫垪琛ㄦ病鏈夊寘鎷?FindBug 鍙互鎵懼埌鐨? 鎵鏈?/em>闂銆傜浉鍙嶏紝鎴戜晶閲嶄簬涓浜涙洿鏈夋剰鎬濈殑闂銆?

媯嫻嬪櫒錛氭壘鍑?hash equals 涓嶅尮閰?/strong>
榪欎釜媯嫻嬪櫒瀵繪壘涓? equals() 鍜? hashCode() 鐨勫疄鐜扮浉鍏崇殑鍑犱釜闂銆傝繖涓や釜鏂規硶闈炲父閲嶈錛屽洜涓哄嚑涔庢墍鏈夊熀浜庨泦鍚堢殑綾燴斺?List銆丮ap銆丼et 絳夐兘璋冪敤瀹冧滑銆備竴鑸潵璇達紝榪欎釜媯嫻嬪櫒瀵繪壘涓ょ涓嶅悓綾誨瀷鐨勯棶棰樷斺斿綋涓涓被錛?

  • 閲嶅啓瀵硅薄鐨? equals() 鏂規硶錛屼絾鏄病鏈夐噸鍐欏畠鐨? hashCode 鏂規硶錛屾垨鑰呯浉鍙嶇殑鎯呭喌鏃躲?

  • 瀹氫箟涓涓?co-variant 鐗堟湰鐨? equals() 鎴? compareTo() 鏂規硶銆備緥濡傦紝 Bob 綾誨畾涔夊叾 equals() 鏂規硶涓哄竷灝? equals(Bob) 錛屽畠瑕嗙洊浜嗗璞′腑瀹氫箟鐨? equals() 鏂規硶銆傚洜涓?Java 浠g爜鍦ㄧ紪璇戞椂瑙f瀽閲嶈澆鏂規硶鐨勬柟寮忥紝鍦ㄨ繍琛屾椂浣跨敤鐨勫嚑涔庢繪槸鍦ㄥ璞′腑瀹氫箟鐨勮繖涓増鏈殑鏂規硶錛岃屼笉鏄湪 Bob 涓畾涔夌殑閭d竴涓紙闄ら潪鏄懼紡灝? equals() 鏂規硶鐨勫弬鏁板己鍒惰漿鎹負 Bob 綾誨瀷錛夈傚洜姝わ紝褰撹繖涓被鐨勪竴涓疄渚嬫斁鍏ュ埌綾婚泦鍚堜腑鐨勪換浣曚竴涓腑鏃訛紝浣跨敤鐨勬槸 Object.equals() 鐗堟湰鐨勬柟娉曪紝鑰屼笉鏄湪 Bob 涓畾涔夌殑鐗堟湰銆傚湪榪欑鎯呭喌涓嬶紝 Bob 綾誨簲褰撳畾涔変竴涓帴鍙楃被鍨嬩負 Object 鐨勫弬鏁扮殑 equals() 鏂規硶銆?

媯嫻嬪櫒錛氬拷鐣ユ柟娉曡繑鍥炲?/strong>
榪欎釜媯嫻嬪櫒鏌ユ壘浠g爜涓拷鐣ヤ簡涓嶅簲璇ュ拷鐣ョ殑鏂規硶榪斿洖鍊肩殑鍦版柟銆傝繖縐嶆儏鍐電殑涓涓父瑙佷緥瀛愭槸鍦ㄨ皟鐢? String 鏂規硶鏃訛紝濡傚湪娓呭崟 1 涓細


娓呭崟 1. 蹇界暐榪斿洖鍊肩殑渚嬪瓙
1  String aString = "bob";
2 b.replace('b', 'p');
3 if(b.equals("pop"))

榪欎釜閿欒寰堝父瑙併傚湪絎?2 琛岋紝紼嬪簭鍛樿涓轟粬宸茬粡鐢?p 鏇挎崲浜嗗瓧絎︿覆涓殑鎵鏈?b銆傜‘瀹炴槸榪欐牱錛屼絾鏄粬蹇樿浜嗗瓧絎︿覆鏄笉鍙彉鐨勩傛墍鏈夎繖綾繪柟娉曢兘榪斿洖涓涓柊瀛楃涓詫紝鑰屼粠鏉ヤ笉浼氭敼鍙樻秷鎭殑鎺ユ敹鑰呫?/p>

媯嫻嬪櫒錛歂ull 鎸囬拡瀵?null 鐨勮В寮曠敤錛坉ereference錛夊拰鍐椾綑姣旇緝
榪欎釜媯嫻嬪櫒鏌ユ壘涓ょ被闂銆傚畠鏌ユ壘浠g爜璺緞灝嗕細鎴栬呭彲鑳介犳垚 null 鎸囬拡寮傚父鐨勬儏鍐碉紝瀹冭繕鏌ユ壘瀵?null 鐨勫啑浣欐瘮杈冪殑鎯呭喌銆備緥濡傦紝濡傛灉涓や釜姣旇緝鍊奸兘涓?null錛岄偅涔堝畠浠氨鏄啑浣欑殑騫跺彲鑳借〃鏄庝唬鐮侀敊璇侳indBugs 鍦ㄥ彲浠ョ‘瀹氫竴涓間負 null 鑰屽彟涓涓間笉涓?null 鏃訛紝媯嫻嬬被浼肩殑閿欒錛屽娓呭崟 2 鎵紺猴細


娓呭崟 2. Null 鎸囬拡紺轟緥
1  Person person = aMap.get("bob");
2 if (person != null) {
3 person.updateAccessTime();
4 }
5 String name = person.getName();

鍦ㄨ繖涓緥瀛愪腑錛屽鏋滅 1 琛岀殑 Map 涓嶅寘鎷竴涓悕涓?#8220;bob”鐨勪漢錛岄偅涔堝湪絎?5 琛岃闂? person 鐨勫悕瀛楁椂灝變細鍑虹幇 null 鎸囬拡寮傚父銆傚洜涓?FindBugs 涓嶇煡閬?map 鏄惁鍖呭惈“bob”錛屾墍浠ュ畠灝嗙 5 琛屾爣璁頒負鍙兘 null 鎸囬拡寮傚父銆?

媯嫻嬪櫒錛氬垵濮嬪寲涔嬪墠璇誨彇瀛楁
榪欎釜媯嫻嬪櫒瀵繪壘鍦ㄦ瀯閫犲嚱鏁頒腑鍒濆鍖栦箣鍓嶈璇誨彇鐨勫瓧孌點傝繖涓敊璇氬父鏄斺斿敖綆′笉鎬繪槸濡傛鈥斺旂敱浣跨敤瀛楁鍚嶈屼笉鏄瀯閫犲嚱鏁板弬鏁板紩璧風殑錛屽娓呭崟 3 鎵紺猴細


娓呭崟 3. 鍦ㄦ瀯閫犲嚱鏁頒腑璇誨彇鏈垵濮嬪寲鐨勫瓧孌?/strong>
1  public class Thing {
2 private List actions;
3 public Thing(String startingActions) {
4 StringTokenizer tokenizer = new StringTokenizer(startingActions);
5 while (tokenizer.hasMoreTokens()) {
6 actions.add(tokenizer.nextToken());
7 }
8 }
9 }

鍦ㄨ繖涓緥瀛愪腑錛岀 6 琛屽皢浜х敓涓涓?null 鎸囬拡寮傚父錛屽洜涓哄彉閲? actions 榪樻病鏈夊垵濮嬪寲銆?

榪欎簺渚嬪瓙鍙槸 FindBugs 鎵鍙戠幇鐨勯棶棰樼綾葷殑涓灝忛儴鍒嗭紙鏇村淇℃伅璇峰弬闃? 鍙傝冭祫鏂?/a>錛夈傚湪鎾板啓鏈枃鏃訛紝FindBugs 鎻愪緵鎬誨叡 35 涓嫻嬪櫒銆?





鍥為〉棣?/strong>


寮濮嬩嬌鐢?FindBugs

瑕佽繍琛?FindBugs錛岄渶瑕佷竴涓増鏈?1.4 鎴栬呮洿楂樼殑 Java Development Kit 錛圝DK錛夛紝灝界瀹冨彲浠ュ垎鏋愮敱鑰佺殑 JDK 鍒涘緩鐨勭被鏂囦歡銆傝鍋氱殑絎竴浠朵簨鏄笅杞藉茍瀹夎鏈鏂板彂甯冪殑 FindBugs鈥斺斿綋鍓嶆槸 0.7.1 錛堣鍙傞槄 鍙傝冭祫鏂?/a>錛夈傚垢榪愮殑鏄紝涓嬭澆鍜屽畨鍏ㄦ槸鐩稿綋綆鍗曠殑銆傚湪涓嬭澆浜?zip 鎴栬?tar 鏂囦歡鍚庯紝灝嗗畠瑙e帇緙╁埌鎵閫夌殑鐩綍涓傚氨鏄繖鏍蜂簡鈥斺斿畨瑁呭氨瀹屾垚浜嗐?

瀹? 瑁呭畬鍚庯紝瀵逛竴涓ず渚嬬被榪愯瀹冦傚氨鍍忎竴鑸枃绔犱腑鐨勬儏鍐碉紝鎴戝皢閽堝 Windows 鐢ㄦ埛榪涜璁茶В錛屽茍鍋囧畾閭d簺 Unix 淇′話鑰呭彲浠ョ啛緇冨湴杞寲榪欎簺鍐呭騫惰窡榪涖傛墦寮鍛戒護琛屾彁紺虹鍙峰茍榪涘叆 FindBugs 鐨勫畨瑁呯洰褰曘傚鎴戞潵璇達紝榪欐槸 C:\apps\FindBugs-0.7.3銆?/p>

鍦?FindBugs 涓葷洰褰曚腑錛屾湁鍑犱釜鍊煎緱娉ㄦ剰鐨勭洰褰曘傛枃妗e湪 doc 鐩綍涓紝浣嗘槸瀵規垜浠潵璇存洿閲嶈鐨勬槸錛宐in 鐩綍鍖呭惈浜嗚繍琛?FindBugs 鐨勬壒澶勭悊鏂囦歡錛岃繖浣挎垜浠繘鍏ヤ笅涓閮ㄥ垎銆?/p>



鍥為〉棣?/strong>


榪愯 FindBugs

鍍? 濡備粖鐨勫ぇ澶氭暟鏁板伐鍏蜂竴鏍鳳紝鍙互浠ュ縐嶆柟寮忚繍琛?FindBugs鈥斺斾粠 GUI銆佷粠鍛戒護琛屻佷嬌鐢?Ant銆佷綔涓?Eclipse 鎻掍歡紼嬪簭鍜屼嬌鐢? Maven銆傛垜灝嗙畝瑕佹彁鍙婁粠 GUI 榪愯 FindBugs錛屼絾鏄噸鐐規斁鍦ㄧ敤 Ant 鍜屽懡浠よ榪愯瀹冦傞儴鍒嗗師鍥犳槸鐢變簬 GUI 娌℃湁鎻愪緵鍛戒護琛岀殑鎵鏈夐夐」銆備緥濡傦紝褰撳墠涓嶈兘鎸囧畾瑕佸姞鍏ョ殑榪囨護鍣ㄦ垨鑰呭湪 UI 涓帓闄ょ壒瀹氱殑綾匯備絾鏄洿閲嶈鐨勫師鍥犳槸鎴戣涓?FindBugs 鏈濂戒綔涓虹紪璇戠殑闆嗘垚閮ㄥ垎浣跨敤錛岃?UI 涓嶅睘浜庤嚜鍔ㄧ紪璇戙?/p>

浣跨敤 FindBugs UI

浣跨敤 FindBugs UI 寰堢洿瑙傦紝浣嗘槸鏈夊嚑鐐瑰煎緱璇存槑銆傚 鍥?1鎵紺猴紝浣跨敤 FindBugs UI 鐨勪竴涓ソ澶勬槸瀵規瘡涓涓嫻嬪埌鐨勯棶棰樻彁渚涗簡璇存槑銆傚浘 1 鏄劇ず浜嗙己闄? Naked notify in method鐨勮鏄庛傚姣忎竴縐嶇己闄鋒ā寮忔彁渚涗簡綾諱技鐨勮鏄庯紝鍦ㄧ涓嬈$啛鎮夎繖縐嶅伐鍏鋒椂榪欐槸寰堟湁鐢ㄧ殑銆傜獥鍙d笅闈㈢殑 Source code 閫夐」鍗′篃鍚屾牱鏈夌敤銆傚鏋滃憡璇?FindBugs 鍦ㄤ粈涔堝湴鏂瑰鎵句唬鐮侊紝瀹冨氨浼氬湪杞崲鍒扮浉搴旂殑閫夐」鍗℃椂紿佸嚭鏄劇ず鏈夐棶棰樼殑閭d竴琛屻?

鍊煎緱涓鎻愮殑榪樻湁鍦ㄥ皢 FinBugs 浣滀負 Ant 浠誨姟鎴栬呭湪鍛戒護琛屼腑榪愯 FindBugs 鏃訛紝閫夋嫨 xml 浣滀負 ouput 閫夐」錛屽彲浠ュ皢涓婁竴嬈¤繍琛岀殑緇撴灉瑁呰澆鍒?UI 涓傝繖鏍峰仛鏄悓鏃跺埄鐢ㄥ熀浜庡懡浠よ鐨勫伐鍏峰拰 UI 宸ュ叿鐨勪紭鐐圭殑涓涓緢濂界殑鏂規硶銆?

灝?FindBugs 浣滀負 Ant 浠誨姟榪愯

璁? 鎴戜滑鐪嬩竴涓嬪浣曞湪 Ant 緙栬瘧鑴氭湰涓嬌鐢?FindBugs銆傞鍏堝皢 FindBugs Ant 浠誨姟鎷瘋礉鍒?Ant 鐨?lib 鐩綍涓紝榪欐牱 Ant 灝辯煡閬撴柊鐨勪換鍔°傚皢 FIND_BUGS_HOME\lib\FindBugs-ant.jar 鎷瘋礉鍒?ANT_HOME\lib銆?/p>

鐜板湪鐪嬬湅鍦ㄧ紪璇戣剼鏈腑瑕佸姞鍏ヤ粈涔堟墠鑳戒嬌鐢?FindBugs 浠誨姟銆傚洜涓?FindBugs 鏄竴涓嚜瀹氫箟浠誨姟錛屽皢闇瑕佷嬌鐢? taskdef 浠誨姟浠ヤ嬌 Ant 鐭ラ亾瑁呰澆鍝竴涓被銆傞氳繃鍦ㄧ紪璇戞枃浠朵腑鍔犲叆浠ヤ笅涓琛屽仛鍒拌繖涓鐐癸細

<taskdef name="FindBugs" classname="edu.umd.cs.FindBugs.anttask.FindBugsTask"/>

鍦ㄥ畾涔変簡 taskdef 鍚庯紝鍙互鐢ㄥ畠鐨勫悕瀛? FindBugs 寮曠敤瀹冦備笅涓姝ヨ鍦ㄧ紪璇戜腑鍔犲叆浣跨敤鏂頒換鍔$殑鐩爣錛屽娓呭崟 4 鎵紺猴細


娓呭崟 4. 鍒涘緩 FindBugs 鐩綍
1  <target name="FindBugs" depends="compile">
2 <FindBugs home="${FindBugs.home}" output="xml" outputFile="jedit-output.xml">
3 <class location="c:\apps\JEdit4.1\jedit.jar" />
4 <auxClasspath path="${basedir}/lib/Regex.jar" />
5 <sourcePath path="c:\tempcbg\jedit" />
6 </FindBugs>
7 </target>

璁╂垜浠洿璇︾粏鍦板垎鏋愯繖孌典唬鐮佷腑鎵鍙戠敓鐨勮繃紼嬨?/p>

絎?1 琛岋細 娉ㄦ剰 target 鍙栧喅浜庣紪璇戙備竴瀹氳璁頒綇澶勭悊鐨勬槸綾繪枃浠惰? 涓?/em> 鏄簮鏂囦歡錛岃繖鏍蜂嬌 target 瀵瑰簲浜庣紪璇戠洰鏍囦繚璇佷簡 FindBugs 鍙湪鏈鏂扮殑綾繪枃浠惰繍琛屻侳indBugs 鍙互鐏墊椿鍦版帴鍙楀縐嶈緭鍏ワ紝鍖呮嫭涓緇勭被鏂囦歡銆丣AR 鏂囦歡銆佹垨鑰呬竴緇勭洰褰曘?

絎?2 琛岋細蹇呴』鎸囧畾鍖呭惈 FindBugs 鐨勭洰褰曪紝鎴戞槸鐢?Ant 鐨勪竴涓睘鎬у畬鎴愮殑錛屽儚榪欐牱錛?

<property name="FindBugs.home" value="C:\apps\FindBugs-0.7.3" />

鍙夊睘鎬? output 鎸囧畾 FindBugs 鐨勭粨鏋滀嬌鐢ㄧ殑杈撳嚭鏍煎紡銆傚彲鑳界殑鍊兼湁 xml 銆? text 鎴栬? emacs 銆傚鏋滄病鏈夋寚瀹? outputFile 錛岄偅涔?FindBugs 浼氫嬌鐢ㄦ爣鍑嗚緭鍑恒傚鍓嶆墍榪幫紝XML 鏍煎紡鏈夊彲浠ュ湪 UI 涓鐪嬬殑棰濆濂藉銆?

絎?3 琛岋細 class 鍏冪礌鐢ㄤ簬鎸囧畾瑕?FindBugs 鍒嗘瀽鍝簺 JAR銆佺被鏂囦歡鎴栬呯洰褰曘傚垎鏋愬涓?JAR 鎴栬呯被鏂囦歡鏃訛紝瑕佷負姣忎竴涓枃浠舵寚瀹氫竴涓崟鐙殑 class 鍏冪礌銆傞櫎闈炲姞鍏ヤ簡 projectFile 鍏冪礌錛屽惁鍒欓渶瑕? class 鍏冪礌銆傛洿澶氱粏鑺傝鍙傞槄 FindBugs 鎵嬪唽銆?

絎?4 琛岋細 鐢ㄥ祵濂楀厓绱? auxClasspath 鍒楀嚭搴旂敤紼嬪簭鐨勪緷璧栨с傝繖浜涙槸搴旂敤紼嬪簭闇瑕佷絾鏄笉甯屾湜 FindBugs 鍒嗘瀽鐨勭被銆傚鏋滄病鏈夊垪鍑哄簲鐢ㄧ▼搴忕殑渚濊禆鍏崇郴錛岄偅涔?FindBugs 浠嶇劧浼氬敖鍙兘鍦板垎鏋愮被錛屼絾鏄湪鎵句笉鍒頒竴涓己灝戠殑綾繪椂錛屽畠浼氭姳鎬ㄣ備笌 class 鍏冪礌涓鏍鳳紝鍙互鍦?FindBugs 鍏冪礌涓寚瀹氬涓? auxClasspath 鍏冪礌銆? auxClasspath 鍏冪礌鏄彲閫夌殑銆?

絎?5 琛岋細 濡傛灉鎸囧畾浜? sourcePath 鍏冪礌錛岄偅涔? path 灞炴у簲褰撹〃鏄庝竴涓寘鍚簲鐢ㄧ▼搴忔簮浠g爜鐨勭洰褰曘傛寚瀹氱洰褰曚嬌 FindBugs 鍙互鍦?GUI 涓煡鐪?XML 緇撴灉鏃剁獊鍑烘樉紺哄嚭閿欑殑婧愪唬鐮併傝繖涓厓绱犳槸鍙夌殑銆?

涓婇潰灝辨槸鍩烘湰鍐呭浜嗐傝鎴戜滑鎻愬墠鍑犱釜鏄熸湡銆?

榪囨護鍣?/span>

鎮? 宸茬粡灝?FindBugs 寮曞叆鍒頒簡鍥㈤槦涓紝騫惰繍琛屽畠浣滀負鎮ㄧ殑姣忓皬鏃?姣忔櫄緙栬瘧榪囩▼鐨勪竴閮ㄥ垎銆傚綋鍥㈤槦瓚婃潵瓚婄啛鎮夎繖涓伐鍏鋒椂錛屽嚭浜庢煇浜涘師鍥狅紝鎮ㄥ喅瀹氭墍媯嫻嬪埌鐨勪竴浜涚己闄峰浜庡洟闃熸潵璇翠笉閲? 瑕併備篃璁告偍涓嶅叧蹇冧竴浜涚被鏄惁榪斿洖鍙兘琚伓鎰忎慨鏀圭殑瀵硅薄鈥斺斾篃璁革紝鍍? JEdit錛屾湁涓涓湡姝i渶瑕佺殑錛坔onest-to-goodness錛夈佸悎娉曠殑鐞嗙敱璋冪敤 System.gc() 銆?

鎬繪槸鍙互閫夋嫨“鍏抽棴”鐗瑰畾鐨? 媯嫻嬪櫒銆傚湪鏇寸粏鍖栫殑姘村鉤涓婏紝鍙互鍦ㄦ寚瀹氱殑涓緇勭被鐢氳嚦鏄柟娉曚腑鏌ユ壘闂鏃訛紝鎺掗櫎鏌愪簺媯嫻嬪櫒銆侳indBugs 鎻愪緵浜嗚繖縐嶇粏鍖栫殑鎺у埗錛屽彲浠ユ帓闄ゆ垨鑰呭寘鍚繃婊ゅ櫒銆傚綋鍓嶅彧鏈夌敤鍛戒護琛屾垨鑰?Ant 鍚姩鐨?FindBugs 涓敮鎸佹帓闄ゅ拰鍖呭惈榪囨護鍣ㄣ傛濡傚叾鍚嶅瓧鎵琛ㄦ槑鐨勶紝浣跨敤鎺掗櫎榪囨護鍣ㄦ潵鎺掗櫎瀵規煇浜涚己闄風殑鎶ュ憡銆傝緝涓哄皯瑙佷絾浠嶇劧鏈夌敤鐨勬槸錛屽寘鍚繃婊ゅ櫒鍙兘鐢ㄤ簬鎶ュ憡鎸囧畾鐨勭己闄楓傝繃婊? 鍣ㄦ槸鍦ㄤ竴涓?XML 鏂囦歡涓畾涔夌殑銆傚彲浠ュ湪鍛戒護琛屼腑鐢ㄤ竴涓帓闄ゆ垨鑰呭寘鍚紑鍏熾佹垨鑰呭湪 Ant 緙栬瘧鏂囦歡涓敤 excludeFilter 鍜? includeFilter 鎸囧畾瀹冧滑銆傚湪涓嬮潰鐨勪緥瀛愪腑錛屽亣瀹氫嬌鐢ㄦ帓闄ゅ紑鍏熾傝繕瑕佹敞鎰忓湪涓嬮潰鐨勮璁轟腑錛屾垜瀵?“bugcode”銆?#8220;bug” 鍜?#8220;detector”鐨勪嬌鐢ㄥ叿鏈夋煇縐嶇▼搴︾殑浜掓崲鎬с?

鍙互鏈変笉鍚岀殑鏂瑰紡瀹氫箟榪囨護鍣細

  • 鍖歸厤涓涓被鐨勮繃婊ゅ櫒銆傚彲浠ョ敤榪欎簺榪囨護鍣?蹇界暐鍦ㄧ壒瀹氱被涓彂鐜扮殑鎵鏈夐棶棰樸?

  • 鍖歸厤涓涓被涓壒瀹氱己闄蜂唬鐮侊紙bugcode錛夌殑 榪囨護鍣ㄣ傚彲浠ョ敤榪欎簺榪囨護鍣ㄥ拷鐣ュ湪鐗瑰畾綾諱腑鍙戠幇鐨勪竴浜涚己闄楓?

  • 鍖歸厤涓緇勭己闄風殑榪囨護鍣ㄣ傚彲浠ョ敤榪欎簺榪囨護鍣?蹇界暐鎵鍒嗘瀽鐨勬墍鏈夌被涓殑涓緇勭己闄楓?

  • 鍖歸厤鎵鍒嗘瀽鐨勪竴涓被涓殑鏌愪簺鏂規硶鐨勮繃婊ゅ櫒銆傚彲浠ョ敤榪欎簺榪囨護鍣ㄥ拷鐣ュ湪涓涓被涓殑涓緇勬柟娉曚腑鍙戠幇鐨勬墍鏈夌己闄楓?

  • 鍖歸厤鍦ㄦ墍鍒嗘瀽鐨勪竴涓被涓殑鏂規硶涓彂鐜扮殑鏌愪簺緙洪櫡鐨勮繃婊ゅ櫒銆傚彲浠ョ敤榪欎簺榪囨護鍣ㄥ拷鐣ュ湪涓緇勬柟娉曚腑鍙戠幇鐨勭壒瀹氱己闄楓?/li>

鐭ラ亾浜嗚繖浜涘氨鍙互寮濮嬩嬌鐢ㄤ簡銆傛湁鍏沖叾浠栧畾鍒?FindBugs 鏂規硶鐨勬洿澶氫俊鎭紝璇峰弬闃?FindBugs 鏂囨。銆傜煡閬撳浣曡緗紪璇戞枃浠朵互鍚庯紝灝辮鎴戜滑鏇磋緇嗗湴鍒嗘瀽濡備綍灝?FindBugs 闆嗘垚鍒扮紪璇戣繃紼嬩腑鍚э紒





鍥為〉棣?/strong>


灝?FindBugs 闆嗘垚鍒扮紪璇戣繃紼嬩腑

鍦ㄥ皢 FindBugs 闆嗘垚鍒扮紪璇戣繃紼嬪綋涓彲浠ユ湁鍑犵閫夋嫨銆傛繪槸鍙互鍦ㄥ懡浠よ鎵ц FindBugs錛屼絾鏄偍寰堝彲鑳藉凡緇忎嬌鐢?Ant 榪涜緙栬瘧錛屾墍浠ユ渶鑷劧鐨勬柟娉曟槸浣跨敤 FindBugs Ant 浠誨姟銆傚洜涓烘垜浠湪 濡備綍榪愯 FindBugs涓鑺備腑璁ㄨ浜嗕嬌鐢?FindBugs Ant 浠誨姟鐨勫熀鏈唴瀹癸紝鎵浠ョ幇鍦ㄨ璁哄簲褰撳皢 FindBugs 鍔犲叆鍒扮紪璇戣繃紼嬩腑鐨勫嚑涓悊鐢憋紝騫惰璁哄嚑涓彲鑳介亣鍒扮殑闂銆?

涓轟粈涔堝簲璇ュ皢 FindBugs 闆嗘垚鍒扮紪璇戣繃紼嬩腑錛?/span>

緇? 甯擱棶鍒扮殑絎竴涓棶棰樻槸涓轟粈涔堣灝?FindBugs 鍔犲叆鍒扮紪璇戣繃紼嬩腑錛熻櫧鐒舵湁澶ч噺鐞嗙敱錛屾渶鏄庢樉鐨勫洖絳旀槸瑕佷繚璇佸敖鍙兘鏃╁湴鍦ㄨ繘琛岀紪璇戞椂鍙戠幇闂銆傚綋鍥㈤槦鎵╁ぇ錛屽茍涓斾笉鍙伩鍏嶅湴鍦ㄩ」鐩腑鍔犲叆鏇村鏂板紑鍙戜漢鍛? 鏃訛紝FindBugs 鍙互浣滀負涓涓畨鍏ㄧ綉錛屾嫻嬪嚭宸茬粡璇嗗埆鐨勭己闄鋒ā寮忋傛垜鎯抽噸鐢沖湪涓綃?FindBugs 璁烘枃涓〃榪扮殑涓浜涜鐐廣傚鏋滆涓瀹氭暟閲忕殑寮鍙戜漢鍛樺叡鍚屽伐浣滐紝閭d箞鍦ㄤ唬鐮佷腑灝變細鍑虹幇緙洪櫡銆傚儚 FindBugs 榪欐牱鐨勫伐鍏峰綋鐒朵笉浼氭壘鍑烘墍鏈夌殑緙洪櫡錛屼絾鏄畠浠細甯姪鎵懼嚭鍏朵腑鐨勯儴鍒嗐傜幇鍦ㄦ壘鍑洪儴鍒嗘瘮瀹㈡埛鍦ㄤ互鍚庢壘鍒板畠浠濂解斺旂壒鍒槸褰撳皢 FindBugs 緇撳悎鍒扮紪璇戣繃紼嬩腑鐨勬垚鏈槸濡傛浣庢椂銆?/p>

涓鏃︾‘瀹氫簡鍔犲叆鍝簺榪囨護鍣ㄥ拰綾伙紝榪愯 FindBugs 灝辨病浠涔堟垚鏈簡錛岃屽甫鏉ョ殑濂藉灝辨槸瀹冧細媯嫻嬪嚭鏂扮己闄楓傚鏋滅紪鍐欑壒瀹氫簬搴旂敤紼嬪簭鐨勬嫻嬪櫒錛屽垯榪欎釜濂藉鍙兘鏇村ぇ銆?/p>

鐢熸垚鏈夋剰涔夌殑緇撴灉

閲? 瑕佺殑鏄璁よ瘑鍒拌繖縐嶆垚鏈?鏁堢泭鍒嗘瀽鍙湁鍦ㄤ笉鐢熸垚澶ч噺璇鏃舵墠鏈夋晥銆傛崲鍙ヨ瘽璇達紝濡傛灉鍦ㄦ瘡嬈$紪璇戞椂錛屼笉鑳界畝鍗曞湴紜畾鏄惁寮曞叆浜嗘柊鐨勭己闄鳳紝閭d箞榪欎釜宸ュ叿鐨勪環鍊煎氨 浼氳鎶墊秷銆傚垎鏋愯秺鑷姩鍖栬秺濂姐傚鏋滀慨澶嶇己闄鋒剰鍛崇潃蹇呴』鍚冨姏鍦板垎鏋愭嫻嬪嚭鐨勫ぇ閲忎笉鐩稿共鐨勭己闄鳳紝閭d箞鎮ㄥ氨涓嶄細緇忓父浣跨敤瀹冿紝鎴栬呰嚦灝戜笉浼氬緢濂藉湴浣跨敤瀹冦?/p>

紜畾涓嶅叧蹇冨摢浜涢棶棰樺茍浠庣紪璇戜腑鎺掗櫎瀹冧滑銆備篃鍙互鎸戝嚭 紜疄鍏蟲敞鐨勪竴灝忛儴鍒嗘嫻嬪櫒騫跺彧榪愯瀹冧滑銆傚彟涓縐嶉夋嫨鏄粠涓埆鐨勭被涓帓闄や竴緇勬嫻嬪櫒錛屼絾鏄叾浠栫殑綾諱笉鎺掗櫎銆侳indBugs 鎻愪緵浜嗕嬌鐢ㄨ繃婊ゅ櫒鐨勬瀬澶х伒媧繪э紝榪欏彲甯姪鐢熸垚瀵瑰洟闃熸湁鎰忎箟鐨勭粨鏋滐紝鐢辨鎴戜滑榪涘叆涓嬩竴鑺傘?

紜畾鐢?FindBugs 鐨勭粨鏋滃仛浠涔?/span>

鍙? 鑳界湅鏉ュ緢鏄劇劧錛屼絾鏄偍鎯充笉鍒版垜鍙備笌鐨勫洟闃熶腑鏈夊灝戝姞鍏ヤ簡綾諱技 FindBugs 榪欐牱鐨勫伐鍏瘋屾病鏈夌湡姝e埄鐢ㄥ畠銆傝鎴戜滑鏇存繁鍏ュ湴鎺㈣榪欎釜闂鈥斺旂敤緇撴灉鍋氫粈涔堬紵鏄庣‘鍥炵瓟榪欎釜闂鏄洶闅劇殑錛屽洜涓鴻繖涓庡洟闃熺殑緇勭粐鏂瑰紡銆佸浣曞鐞嗕唬鐮佹墍鏈夋潈闂 絳夋湁寰堝ぇ鍏崇郴銆備笉榪囷紝涓嬮潰鏄竴浜涙寚瀵鹼細





鍥為〉棣?/strong>


緇撴潫璇?/span>

鎴? 榧撳姳璇昏呭鑷繁鐨勪唬鐮佽瘯鐢ㄩ潤鎬佸垎鏋愬伐鍏鳳紝涓嶇鏄?FindBugs銆丳MD 榪樻槸鍏朵粬鐨勩傚畠浠槸鏈夌敤鐨勫伐鍏鳳紝鍙互鎵懼嚭鐪熸鐨勯棶棰橈紝鑰?FindBugs 鏄湪娑堥櫎璇鏂歸潰鍋氬緱鏈濂界殑宸ュ叿銆傛澶栵紝瀹冪殑鍙彃鍏ョ粨鏋勬彁渚涗簡緙栧啓鏈変環鍊肩殑銆佺壒瀹氫簬搴旂敤紼嬪簭鐨勬嫻嬪櫒鐨勩佹湁鎰忔濈殑嫻嬭瘯妗嗘灦銆傚湪鏈郴鍒楃殑 絎?2 閮ㄥ垎涓紝鎴戝皢灞曠ず濡備綍緙栧啓鑷畾涔夋嫻嬪櫒浠ユ壘鍑虹壒瀹氫簬搴旂敤紼嬪簭鐨勯棶棰樸?



鍙傝冭祫鏂?



鍏充簬浣滆?/span>


Chris Grindstaff 鏄湪鍖楀姞鍒╃灝間簹 Research Triangle Park 宸ヤ綔鐨?IBM 楂樼駭杞歡宸ョ▼甯堛侰hris 鍦?7 宀佹椂緙栧啓浜嗕粬鐨勭涓涓▼搴忥紝褰撴椂浠栬灝忓鑰佸笀璁よ瘑鍒?#8220;閿叆”鍙ュ瓙涓庢墜鍐欏畠浠竴鏍瘋垂鍔涖侰hris 鐩墠鍙備笌浜嗕笉鍚岀殑寮鏀炬簮浠g爜欏圭洰銆備粬澶ч噺浣跨敤 Eclipse 騫剁紪鍐欎簡鍑犱釜嫻佽鐨?Eclipse 鎻掍歡紼嬪簭錛屽彲浠ュ湪浠栫殑 緗戠珯鎵懼埌榪欎簺鎻掍歡紼嬪簭銆傚彲浠ラ氳繃 cgrinds@us.ibm.com鎴栬? chris@gstaff.org涓?Chrise 鑱旂郴銆?






浜岃儭 2009-04-16 13:12 鍙戣〃璇勮
]]> 主站蜘蛛池模板: 农村寡妇一级毛片免费看视频| 亚洲乱码日产一区三区| 亚洲国产精品一区二区久| 无码人妻一区二区三区免费看| 国产性爱在线观看亚洲黄色一级片| 高潮毛片无遮挡高清免费视频| 成年男女免费视频网站| 亚洲中文字幕一二三四区| 青春禁区视频在线观看直播免费 | 国产成人精品久久亚洲高清不卡 | 国产亚洲精品美女| 免费人成视频在线观看视频| 亚洲AV无码之国产精品| 一本久到久久亚洲综合| 一级做a爰片久久免费| 亚洲伊人久久大香线蕉综合图片 | 亚洲av永久无码一区二区三区| 国产资源免费观看| 日韩在线视频线视频免费网站| 国产gv天堂亚洲国产gv刚刚碰| 久久免费精品视频| 亚洲精品一区二区三区四区乱码 | 最近最好最新2019中文字幕免费| 亚洲经典在线中文字幕| 91成人免费在线视频| 午夜亚洲WWW湿好爽| 久久精品国产精品亚洲下载| 日韩精品免费在线视频| 亚洲毛片免费观看| 国产极品粉嫩泬免费观看| 一级毛片免费在线| 67pao强力打造67194在线午夜亚洲 | yellow免费网站| 亚洲免费视频在线观看| 2021久久精品免费观看| 黄网站色成年片大免费高清| 亚洲AV无码欧洲AV无码网站| 性一交一乱一视频免费看| 久久久久国色AV免费观看| 亚洲日本国产精华液| 亚洲AV无码乱码精品国产|