在 Eclipse 中設定 Java 函式庫(JAR)的 Source 與 Javadoc 檔案,讓寫程式時看說明更方便

在 Eclipse 中若安裝 Jar 函式庫而沒有設定 Source 與 Javadoc,就會無法看到函式庫的說明與程式碼,這裡教大家如何在 Eclipse 中正確設定 Source 與 Javadoc 的 Jar 檔。

在使用 Eclipse 撰寫 Java 程式時,我們常常會需要觀看類別的說明,正常來說在程式碼中,將滑鼠移到一個類別上就會出現類似這樣的類別說明:

javadoc_in_eclipse


或是利用 Eclipse 的 Javadoc 的籤頁也可以查閱這類的文件。

但如果是從網路上下載一些 Jar 函式庫,如果沒有設定好 javadoc 的話,就會無法使用像這樣的查詢功能,嘗試開啓說明文件時,就會出現下面這個訊息:

Note: This element neither has attached source nor attached Javadoc and hence no Javadoc could be found

就像這樣:

no_javadoc

另外,在使用 Eclipse 來 trace 程式碼時,一般都會按住 Ctrl 鍵然後點擊要看的類別或是方法等,這樣就會開啓該類別或是方法的原始程式碼,但是如果 trace 到自己安裝的 Jar 函式庫時,如果沒有設定好 source 的話,就會出現「Source not found」的訊息:

eclipse_source_not_found

以下介紹如何在 Eclipse 設定一般 Jar 函式庫的 javadoc 與 source,讓程式開發更方便。

這裡我們以 Apache Commons Fileupload 這個開放原始碼的函式庫作為示範。

首先打開我們所下載的 commons-fileupload-1.3 函式庫資料夾。

jar_files

通常如果是開放原始碼的 Java 函式庫,都會包裝成 Jar 的壓縮檔,而且應該會分成編譯好的二進位(binary)函式庫、javadoc 與 sources 三個檔案,在這裡對應的就是 commons-fileupload-1.3.jarcommons-fileupload-1.3-javadoc.jarcommons-fileupload-1.3-sources.jar 三個檔案,如果安裝時只有加入二進位函式庫的 Jar 檔的話,雖然程式可以跑,但是就無法進行程式碼的 trace 與查詢 javadoc 的功能。

接著開啟 Eclipse,在 Project 上使用右鍵選單打開「Build Path」>「Configure Build Path」。

eclipse_configure_build_path

這裡假設我們已經使用「Add JARs」將 commons-fileupload-1.3.jar 二進位的 Jar 檔設定好了,而要繼續設定 source 與 javadoc 的話,就點選該 Jar 函式庫左邊的三角形,將其子項目打開。

eclipse_build_path

打開之後,就會看到有 Source attachment 與 Javadoc location 兩個項目,這兩個項目就是對應我們所下載的 commons-fileupload-1.3-sources.jarcommons-fileupload-1.3-javadoc.jar 兩個檔,若要設定,就將該項目選取後,點選右方的「Edit」。

然後選擇對應的 Jar 檔案位置:

eclipse_select_source_attachment

javadoc 的話,除了選擇自己電腦中的檔案之外,也可以直接指定網路上的 javadoc 位置。

eclipse_select_javadoc

設定完成之後,就可以在 Eclipse 中直接查詢 org.apache.commons.fileupload 的 javadoc 文件了:

eclipse_javadoc

而在 trace 程式碼時,也可以直接打開裡面的程式碼觀看:

eclipse_trace_code

程式設計

1 Comment

  1. Eclipse Newer

    哈囉~~
    我是最近開始使用eclipse的使用者
    想請問一下,如果只有 jar 檔,而沒有其他 source 的檔案
    是不是在eclipse的project中就不能用該 jar 檔內的class 或 method?
    另外,這個 jar 檔可以在 windows 的 command line 中執行
    這我覺得很奇怪耶,明明在專案中沒有 sourece file 可以用…

Leave a Reply