makefile 之 java -X 之 lint

來源:互聯網
上載者:User

E:/>javac -X 
  -Xlint                     啟用建議的警告 
  -Xlint:{all,deprecation,unchecked,fallthrough,path,serial,finally,-deprecat ion 
,-unchecked,-fallthrough,-path,-serial,-finally}啟用或禁用特定的警告 
  -Xbootclasspath/p:<路徑>     置於引導類路徑之前 
  -Xbootclasspath/a:<路徑>     置於引導類路徑之後 
  -Xbootclasspath:<路徑>       覆蓋引導類檔案的位置 
  -Djava.ext.dirs=<目錄>       覆蓋安裝的擴充目錄的位置 
  -Djava.endorsed.dirs=<目錄>  覆蓋簽名的標準路徑的位置 
  -Xmaxerrs <編號>             設定要輸出的錯誤的最大數目 
  -Xmaxwarns <編號>            設定要輸出的警告的最大數目 
  -Xstdout <檔案名稱>             重新導向標準輸出

 

這些選項都是非標準選項,注意更新。。。

 

我們依次來看看其中涉及 lint 的選項: 

 -Xlint 

啟用所有警告。該選項相當於 -Xlint:all 選項。相反,關閉所有警告的選項為 -Xlint:none。 
-Xlint:unchecked 

啟用對所謂的未經檢查的轉換(unchecked warning)的警告。這個警告涉及 JDK 5.0 中的新特性——範型(Generic 
Type),這絕對是另外一個故事了。有興趣的話,可以在 Internet 上搜尋到很多關於範型的文章。 
-Xlint:path 

當發現不存在的路徑或者目錄時給出警告,比如標準選項中的類路徑(classpath),原始碼路徑(sourcepath)等等。 
-Xlint:serial 

當在可序列化的類中沒有發現 serialVersionUID 的定義時,給出警告。 
Xlint:finally 

當發現 finally 子句無法正常結束的情況時給出警告。比如下面這段代碼: 

try { 

} catch (Exception e) { 
} finally { 
    for (;;); 

-Xlint:fallthrough

當在 switch 語句塊中發現 fall-through 的情形時給出警告。這裡所說的 fall-through 情形指的是在 
switch語句塊中,除了最後一個 
case 之外的其它 case 中沒有包含 break 語句,導致執行代碼時從一個 case 直接穿過執行到了下一個 case 中。比如下面這段代碼: 

switch (color) { 
case GREEN: 
        System.out.println("green"); 
        // 沒有 break 語句;fall-through 
case RED: 
        System.out.println("red"); 
        break; 
case YELLOW: 
        System.out.println("yellow"); 

-Xlint:deprecation

顯示關於使用了過時的 API 的詳細資料。這個選項等同於一個我們熟悉的標準選項,即 -deprecation 選項。相對其它 lint 
選項而言,該選項的特別之處在於,即使你關閉了它,編譯器仍然會簡單地提醒你某個類中使用了過時的 API。只是啟用該項警告時,顯示的資訊將更詳細而以。 

上面提到的這些 lint 選項中的警告名稱(冒號後面的部分),可以加以組合,從而有選擇的開啟或者關閉特定的一組 lint 警告選項,比如 
-Xlint:deprecation, 
finally 表示開啟 deprecation 和 finally 警告。還可以在警告名稱前加上"-"表示關閉該項警告,比如 
-Xlint:all,-unchecked 表示開啟除了 unchecked 之外的所有警告。 

 

 

一個makefile簡單一實例:

# nash635
# RoboCup2009 DUT_rescue

src := $(wildcard *.java  */*.java */*/*.java */*/*/*.java */*/*/*/*.java) 
sucs := -d .
path := -classpath ./swt.jar 

all: 
    javac -Xlint:all $(path) $(sucs) $(src) 
 
.PHONY: clean 
 
clean: 
    rm -f *.class  */*.class  */*/*.class  */*/*/*.class  */*/*/*/*.class 
    rm -f *~       */*~

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.