設定 Java 建置路徑

本章節說明如何設定 Java 建置路徑。建置路徑即是類別路徑, 用於建置 Java 專案 (IJavaProject)。

類別路徑僅是類別路徑項目的陣列 (IClassPathEntry), 用來說明可用的類型。類型可以程式碼或二進位碼形式出現, 而且路徑上項目的次序定義了在建置期間解析類型所用的查閱次序。

Java 建置路徑反映在 Java 專案元素的結構中。 您可以查詢專案以取得其套件片段的根目錄 (IPackageFragmentRoot)。 每一個類別路徑項目都對映至一個或多個套件片段根目錄,它們之中的每一個都另外含有一組套件片段。

建置路徑的這個討論不包括 Java 執行時期路徑,因為您可以從建置路徑個別定義它。 (如果需要執行時期類別路徑的討論,請參閱執行 Java 程式碼

變更建置路徑

您可以透過程式設計方式,將 setRawClasspath 用於對應專案的 Java 元素上,以變更專案的建置路徑。 下列程式碼設定專案資源的類別路徑:

	IProject project = ... // 取得部分專案資源
	IJavaProject javaProject = JavaCore.create(project);
	IClasspathEntry[] newClasspath = ...;
	javaProject.setRawClasspath(newClasspath, someProgressMonitor);
	

(附註:使用 "raw" 類別路徑這個詞彙是用來強調以下的事實: 並未解析任何用來說明項目位置的變數。)

Java 建置路徑會保存在專案檔案結構中名為 '.classpath' 的檔案內。 這個檔案的用途在於可藉由透過某些程式碼儲存庫,讓其他人可共用 Java 建置路徑的設定值。 尤其是這個檔案不應以手動方式編輯以免毀損。

類別路徑項目

您可使用 JavaCore 中所定義的 Factory 方法來定義類別路徑項目。 類別路徑項目可以參照下列任一項:

排除型樣

類別路徑程式檔項目可以指定給排除型樣,以防止在類別路徑看得到來源資料夾中的某些資源。 使用型樣可讓您過濾出資源樹狀結構的指定部分。每一個排除型樣路徑相對於類別路徑項目, 並使用類似於 Ant 的型樣機制。只要外部型樣排除了內部型樣, 排除型樣就可以用來指定巢狀來源資料夾。

如果需要排除型樣的詳細資料,請參閱 getExclusionPatterns()

Java 專案 API isOnClasspath 在判斷某特定資源是否位於類別路徑之前會先檢查併入及排除型樣。

備註:

併入型樣

類別路徑來源項目也可以指派併入型樣,明確地定義該類別路徑可見的資源。如果未指定併入型樣,則來源項目會併入以這個來源項目路徑,作為根目錄的資源樹狀結構中的所有相關檔案。 指定一或多個併入型樣表示只要併入資源樹狀結構中已指定的部分。 每一個指定的路徑必須是相對路徑, 以相對於這個來源項目路徑的方式解譯。檔案型樣有區分大小寫。 符合一或多個這些型樣的檔案除非遭到這個項目的一或多個排除型樣所排除, 否則會併入對應的套件片段根目錄中。

有關路徑型樣的語法和語意的討論,請參閱 getExclusionPatterns()。 缺乏併入型樣,其語意上相當於明確併入型樣 **

Java 專案 API isOnClasspath 在判斷某特定資源是否位於類別路徑之前會先檢查併入及排除型樣。

範例:

類別路徑的解析

因為類別路徑變數和儲存器可讓您定義動態連結的類別路徑項目, 所以類別路徑 API 會在原始和已解析的類別路徑之間有所區分。 原始類別路徑是指使用 setRawClasspath 原先設定在 Java 專案中的類別路徑, 並且可藉由要求專案提供 getRawClasspath, 而進行進一步查詢。 您可以使用 getResolvedClasspath 來查詢已解析的類別路徑。 這個作業會觸發解析類別路徑所需的任何變數和儲存器的初值設定。 許多「Java 模型」作業會隱含地導致要解析 Java 建置路徑。 例如,當計算專案的套件片段根目錄時,需要解析建置路徑。