JDT 常見問題

我可以不使用隨工作台內建的 Java 編譯器而改用其他的嗎(例如 javac) ?

否。JDT 提供很多更準確的特性,包括:全自動執行增量的編譯、程式碼 Snippet 評估、程式碼輔助、類型階層以及快速程式碼取代。這些特性需要特殊的支援,而這些支援是放在工作台 Java 編譯器(為 JDT 增量專案建置器中不可或缺的一部分)中,標準的 Java 編譯器中沒有。

Java 套件出自何處?

專案只含有檔案和資料夾。Java 套件的概念是透過 Java 專案的類別路徑來傳達(在 UI 中,「套件瀏覽器」會按照類別路徑中的定義來呈現套件)。 提示:如果套件結構不是您要的,請核對您的類別路徑。只會在類別路徑上的 Java 元素中尋找它們本身的宣告及對它們的參照。

何時可使用內部與外部 JAR 程式庫檔案?

內部資源常駐在工作台的某些專案中,而由工作台管理;就像其他資源般,這些資源可以是工作台所管理的版本。 而外部資源不是工作台的一部分,而只能供參照使用。舉例來說,JRE 通常是外部的且非常大,而不需建立其和 VCM 系統間的關聯性。

何時應使用 Java 專案中的來源資料夾?

每一個 Java 專案會透過專案類別路徑中的一或多個程式檔類型項目,來尋找其 Java 程式檔。您可利用來源資料夾,將大專案的套件組織成一些有用的群組,或將程式碼和同一專案中的其他檔案分開。此外,如果您有一些不需要放在建置路徑中的檔案(如:文件),請使用來源資料夾。

何謂程式檔附加,該如何定義一個?

程式庫是儲存成 JAR 檔,這類檔案中含有二進位類別檔(可能還有其他資源)。這些二進位類別檔可提供套件、類別、方法與欄位的簽章資訊。 這項資訊已足以編譯或執行,但在原來的程式碼方面所含的資訊卻很少。 為了方便瀏覽與除錯二進位程式庫,可採用一種建立對應程式 JAR 檔(或 ZIP)檔和二進位 JAR 檔間之關聯性的機制。

為何我的資源(例如 bin)全會複製到輸出資料夾中?

如果您的 Java 專案有使用來源資料夾,則在編譯專案中的程式檔期間,Java 編譯器也會將非 Java 資源複製到輸出資料夾中,以便使其出現在執行中程式的類別路徑中。要避免某些資源複製到輸出位置,您可以在「Java 編譯器」喜好設定中設定資源過濾器: 視窗 > 喜好設定 > Java > 編譯器 > 建置

如何避免將文件檔複製到專案的輸出資料夾中?

您可以使用來源資料夾,並將任何不要複製到輸出資料夾的資源,放到未併入類別路徑的另一個資料夾中。您也可以選取視窗 > 喜好設定 > Java > 編譯器 > 建置,在「Java 編譯器」喜好設定中設定資源過濾器,例如 *.doc。

如何建立預設套件?

您不需要建立。來源資料夾或專案之根資料夾中的檔案,即被視為位在預設套件中。事實上,每一個來源資料夾都有一項功能,那就是含有預設套件的片段。

何謂重構?

重構是指行為保留的程式轉換。JDT 支援 Martin Fowler 在 Refactoring: Improving the Design of Existing Code, Addison-Wesley 1999 一書中所提的眾多轉換。

何時使用「開啟宣告 (F3)」?

在編譯器的協助下,為了瞭解對應於選取程式碼範圍的 Java 元素時。

Java 程式資訊(如:類型階層、宣告、參照等)是由 Java 建置器產生的嗎? 當停用自動建置特性時,仍會更新這項資訊嗎?

Java 程式資訊不受 Java 建置器影響。 當您執行資源變更或 Java 作業時,即會自動更新。 尤其是,當自動建置關閉時,由 Java 工具所提供的所有功能(例如:類型階層、程式碼輔助、搜尋)會繼續正確地執行;例如,在執行繁重的重構時需要關閉建置器,但您仍然可以使用程式碼輔助來反映最新變更(尚未建置)。除了啟動(亦即,執行與除錯)程式外,唯一需用到 Java 建置器的功能為程式碼 Snippet 的評估。

在重新開啟工作台後,編輯 Java 程式檔後的第一項建置作業似乎花較久的時間。 為何會如此?

當關閉工作台時,Java 增量專案建置器會將其內部狀態儲存到檔案中。 當您於重新開啟專案後,第一次進行建置時,Java 增量專案建置器會還原其內部狀態。 當這個檔案較大時,使用者會不尋常地發現建置時間延遲過久。

看不到我的類別的類型階層。該如何做?

請檢查您的建置類別路徑是否設定正確。設定適當的建置類別路徑,是您在開發 Java 時一項相當重要的作業。 如果建置路徑不正確,您將無法編譯器碼。此外,您將無法在類型階層中搜尋或查看 Java 元素。

如何停用「自動編譯」,並在必要時手動進行?

開啟「工作區」喜好設定頁面 一般 > 工作區喜好設定頁面中,清除自動建置勾選框。當您想建置時,請按 Ctrl+B,或選取功能表列中的專案 > 全部建置

提示:當您關閉「自動編譯」,並採取手動建置時,您也可能想在 開啟「工作區」喜好設定頁面 一般 > 工作區喜好設定頁面中,選取建置之前先自動儲存勾選框。

當我在「大綱」視圖中選取了方法或欄位時,只有該元素的原始檔會顯示在編輯器中。怎麼做才能看到整個檔案的原始檔呢?

有一個只顯示選取元素的原始檔工具列按鈕 - 只要不按下它即可。

我可以建立巢狀來源資料夾嗎?

可以,您可以使用排除過濾器來建立巢狀來源資料夾。

我可以對每一個來源資料夾具有個別的輸出資料夾嗎?

可以,在您 Java 專案的 Java 建置路徑 > 程式碼內容頁中,選取容許來源資料夾的輸出資料夾勾選框。

我可以具有一個位在工作區之外的輸出或來源資料夾嗎?

可以,您可以建立一個鏈結的資料夾,指向想要的位置,然後使用該資料夾作為您 Java 專案中的程式檔或輸出資料夾。

相關概念

Java 開發工具 (JDT)

相關參照

「Java 建置路徑」頁面
JDT 名詞解釋