コンパイル環境の設定

デフォルトでは、バンドルは、ビルドを実行するために使用されている JRE、または、1.3 と 1.2 に設定されたソースおよびターゲット・レベルでコンパイルされます。

PDE ビルドは、各バンドル・ベースでコンパイル中に使用される JRE を構成できます。   これを利用するために、最初にどの JRE が使用可能かを PDE ビルドに通知する必要があります。   ビルド構成 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

バンドルの環境の選択

バンドルをコンパイルするために使用される環境に影響する設定が 2 つあります。   1 つはマニフェスト・ヘッダー Bundle-RequiredExecutionEnvironment です。  このヘッダーは、バンドルを実行することが可能な環境のリストです。   バンドルは、リストされたすべての環境の適切なサブセットにあるメソッドのみを使用する必要があります。   コンパイル環境をランタイム環境にできるだけ一致させることが推奨されます。

2 番目の設定は、バンドルの build.properties ファイルのプロパティー jre.compilation.profile です。   Bundle-RequiredExecutionEnvironment リストが適切でない場合、このプロパティーの値が、バンドルのコンパイル環境として優先されます。

これらの 2 つの設定が、環境のリストを形成します。まず、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.4 ではなく J2SE-1.3 のみを定義した場合、J2SE-1.3 は JRE が使用可能なリストで唯一の環境となり、バンドルをコンパイルするために使用されます。   その場合、ソースおよびターゲット・レベルは、1.3 と 1.1 になります。

コンパイル値の明示的な設定

何らかの理由で、上記のように環境を使用しても望ましいセットアップにならない場合は、バンドルで要求される設定を明示的にリストすることが可能です。  例えば、assert により J2SE-1.4 を使用するバンドルがある場合、ソースおよびターゲットのレベルは、デフォルトの 1.3 や 1.2 ではなく、1.4 である必要があります。

Java ソースおよびターゲット・レベルを明示的に設定するには、バンドルはプロパティー javacSource および javacTarget を build.properties ファイルに設定する必要があります。   これらのプロパティーは、環境設定から取り込まれた値を上書きします。

同様に、バンドルの build.properties ファイルのプロパティー bootClasspath の設定は、バンドルがコンパイルされる jar を上書きします。