JDT 常見問題

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

不能。 JDT 提供很多更準確的特性,包括:全自動執行增量的重新編譯、程式碼片段評估、程式碼輔助、類型階層以及快速程式碼替換。這些特性需要特殊的支援, 而這些支援是放在工作台 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 建置器的功能為程式碼片段的評估。

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

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

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

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

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

取消勾選視窗 > 喜好設定 > 一般 > 工作區 > 自動建置勾選框。 當您想建置時, 請按 Ctrl+B,或選取功能表列中的專案 > 全部建置

提示:當您關閉「自動編譯」並手動建置時, 您可能也要勾選視窗 > 喜好設定 > 一般 > 工作區 > 建置前自動儲存勾選框。

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

有一個僅顯示所選元素的程式檔工具列按鈕 - 您只需不要按下它即可。

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

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

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

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

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

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

相關概念

Java 開發工具 (JDT)

相關參照

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