設定編譯環境

依預設,軟體組的編譯會使用執行建置時所用的任何 JRE,來源和目標層次會設為 1.3 和 1.2。

PDE 建置能夠在個別軟體組的基礎上,配置編譯期間所用的 JRE。 如果要運用這一點,首先要告訴 PDE 建置有哪些可用的 JRE。 請在建置配置檔 build.properties 中,將內容設成指向每個已安裝的 JRE。 org.eclipse.pde.build/templates/headless-build 所提供的 build.properties 範本有一份註銷的環境清單。 您只需要將您有 JRE 的內容解除註銷,再將值設為屬於啟動類別路徑的這組 JAR 即可。 例如,設定下列內容:

J2SE-1.5=C:/Java/1.5/jre/lib/rt.jar;C:/Java/1.5/jre/lib/jsse.jar

會針對 rt.jar 和 jsse.jar 來編譯需要 Java 1.5 的軟體組。 內容名稱應該符合「PDE 建置」所知道的環境名稱。 「PDE 建置」會自動設定每個環境的來源和目標層次。 PDE 建置知道的環境及其相關來源/目標層次如下:

環境
來源
目標
CDC-1.0/Foundation-1.0
1.3
1.1
CDC-1.1/Foundation-1.1
1.3
1.2
OSGi/Minimum-1.0
1.3
1.1
OSGi/Minimum-1.1
1.3
1.2
JRE-1.1
1.1
1.1
J2SE-1.2
1.2
1.1
J2SE-1.3
1.3
1.1
J2SE-1.4
1.3
1.2
J2SE-1.5
1.5
1.5
JavaSE-1.6
1.6
1.6
PersonalJava-1.1
1.1
1.1
PersonalJava-1.2
1.1
1.1
CDC-1.0/PersonalBasis-1.0
1.3
1.1
CDC-1.0/PersonalJava-1.0
1.3
1.1
CDC-1.1/PersonalBasis-1.1
1.3
1.2
CDC-1.1/PersonalJava-1.1
1.3
1.2

選擇軟體組環境

用來編譯軟體組的環境會受兩個設定影響。 一個是 Manifest 標頭 Bundle-RequiredExecutionEnvironment。 這個標頭是能夠執行您的軟體組的環境清單。 您的軟體組只應使用在列出的環境之適當子集中的方法。 編譯環境最好儘可能符合執行時期環境。

第二個設定是軟體組 build.properties 檔中的 jre.compilation.profile 內容。 這個內容值是在 Bundle-RequiredExecutionEnvironment 清單不適用之時,應該用來編譯這個軟體組的偏好環境。

這兩個設定共同形成了一份環境清單,先是 jre.compilation.profile,之後是 Bundle-RequiredExecutionEnvironment 所提供的環境。 在這份清單中,您的建置配置所提供的第一個環境(請參閱上一節)將用來編譯您的軟體組。

範例:
<buildDirectory>/plugins/bundleA/
META-INF/manifest.mf: Bundle-RequiredExecutionEnvironment: CDC-1.0/Foundation-1.0, J2SE-1.3
build.properties:  jre.compilation.profile=J2SE-1.4

<buildConfiguration>/
build.properties:  J2SE-1.3=C:/Java1.3/jre/lib/rt.jar;C:/Java1.3/jre/lib/i18n.jar
J2SE-1.4=C:/Java1.4/jre/lib/rt.jar;C:/Java1.4/jre/lib/jsse.jar

在上述設定中,考量的環境清單依序是:J2SE-1.4、CDC-1.0/Foundation-1.0、J2SE-1.3。 軟體組可以執行於 CDC/Foundation 和 J2SE-1.3,但由於某些原因,它應該相容於 J2SE-1.4。 在這個情況下,J2SE-1.4 會設在建置配置中,且是環境清單中的第一項,因此,會利用它來編譯軟體組。 這個情況所用的來源和目標層次是 1.3 和 1.2。 相反地,如果建置配置只定義 J2SE-1.3,未定義 J2SE-1.4,J2SE-1.3 便是能夠使用 JRE 之清單中的唯一環境,因此,會用它來編譯軟體組。 在這個情況下,來源和目標層次是 1.3 和 1.1。

明確設定編譯值

如果依上述說明使用環境,為了某些原因而無法產生所需要的設定,軟體組有可能明確地列出它所需要的設定。 比方說,如果您有軟體組使用含有若干宣告的 J2SE-1.4,來源和目標層次便應該設為 1.4,而不是預設的 1.3 和 1.2。

如果要明確設定 Java 來源和目標層次,軟體組應該在它的 build.properties 檔中,設定 javacSourcejavacTarget 內容。 這些內容會置換從環境設定衍生而來的值。

同樣地,設定 build.properties 檔中的 bootClasspath 內容會置換軟體組編譯所用的 JAR 組。