Kompilierungsumgebung festlegen

Ihre Produktpakete werden standardmäßig mit Hilfe einer beliebigen JRE zur Ausführung der Erstellung kompiliert, während die Quellen- und Zielebenen auf 1.3 und 1.2 eingestellt sind.

Die PDE-Erstellung kann die JRE während der Kompilierung auf der Ebene eines Produktpakets konfigurieren.  Wenn Sie davon profitieren möchten, müssen Sie zunächst der PDE-Erstellung mitteilen, über welche JREs Sie verfügen.  Definieren Sie in der Erstellungskonfigurationsdatei 'build.properties' die Eigenschaften so, dass sie auf jede installierte JRE verweisen.  In der Schablone 'build.properties' in 'org.eclipse.pde.build/templates/headless-build' ist eine Liste der Umgebungen enthalten, die auf Kommentar gesetzt sind.   Entfernen Sie einfach die Kommentarzeichen für die Eigenschaften, für die Sie JREs besitzen, und stellen Sie den Wert für die JAR-Gruppe ein, die zum Bootklassenpfad gehören.  Wenn Sie zum Beispiel die folgende Eigenschaft einstellen:

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

werden die Produktpakete, für die Java 1.5 erforderlich ist, mit 'rt.jar' und 'jsse.jar' kompiliert.  Die Namen der Eigenschaften müssen mit den Namen der Umgebungen übereinstimmen, die der PDE-Erstellung bekannt sind.    Die PDE-Erstellung stellt die Quellen- und Zielebenen für jede Umgebung automatisch ein.   Umgebungen, die die PDE-Erstellung kennt, und ihre zugeordneten Quellen- bzw. Zielebenen:

Umgebung
Quelle
Ziel
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

Die Umgebung für Ihr Produktpaket auswählen

Zwei Einstellungen haben Einfluss auf die Umgebung, die zum Kompilieren Ihres Produktpakets verwendet wird.   Eine ist der Manifestheader Bundle-RequiredExecutionEnvironment.   Dieser Header ist eine Liste der Umgebungen, in denen Ihr Produktpaket ausgeführt werden kann.   Ihr Produktpaket darf nur Methoden verwenden, die in der entsprechenden Untergruppe aller aufgelisteten Umgebungen enthalten sind.   Dabei ist es wichtig, dass die Kompilierungsumgebung so weit wie möglich mit der Laufzeitumgebung identisch ist.

Die zweite Einstellung ist die Eigenschaft jre.compilation.profile in der Datei 'build.properties' in Ihrem Produktpaket.   Der Wert dieser Eigenschaft sollte die bevorzugte Umgebung für die Kompilierung dieses Produktpakets sein, wenn die Liste 'Bundle-RequiredExecutionEnvironment' nicht geeignet ist.

Anhand dieser beiden Einstellungen wird eine Liste der Umgebungen gebildet, zuerst unter Verwendung von 'jre.compilation.profile', anschließend unter Verwendung der Liste 'Bundle-RequiredExecutionEnvironment'.   Die erste Umgebung in dieser Liste, die in Ihrer Erstellungskonfiguration verfügbar ist (siehe Abschnitt weiter oben), wird zum Kompilieren Ihres Produktpakets verwendet.

Beispiel:
<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

In der obigen Aufstellung ist die Liste der in Betracht kommenden Umgebungen (in der Reihenfolge): J2SE-1.4,  CDC-1.0/Foundation-1.0, J2SE-1.3.   Das Produktpaket kann unter CDC/Foundation und J2SE-1.3 ausgeführt werden,  sollte aber mit J2SE-1.4 kompiliert werden.   In diesem Fall ist J2SE-1.4 in der Erstellungskonfiguration eingestellt und wird als erste Umgebung in der Liste aufgeführt; somit wird diese Umgebung zum Kompilieren des Produktpakets verwendet.   In diesem Fall werden die Quellen- und Zielebenen 1.3 und 1.2 verwendet.   Wenn in der Erstellungskonfiguration stattdessen nur J2SE-1.3 und nicht J2SE-1.4 definiert wäre, wäre J2SE-1.3 die einzige Umgebung in der Liste, für die eine JRE verfügbar wäre und würde somit zum Kompilieren des Produktpakets verwendet werden.   In diesem Fall würden als Quellen- und Zielebenen 1.3 und 1.1 verwendet werden.

Kompilierungswerte explizit einstellen

Wenn die Verwendung der Umgebungen nach dem obigen Schema nicht zur gewünschten Konfiguration führt, können für ein Produktpaket explizit die Einstellungen aufgelistet werden, die erforderlich sind.   Wenn Sie zum Beispiel ein Produktpaket besitzen, das J2SE-1.4 mit 'asserts' verwendet, müssten Quellen- und Zielebene 1.4 anstatt der Standardeinstellung 1.3 und 1.2 sein.

Wenn Sie die Quellen- und Zielebenen für Java explizit einstellen möchten, müssen für das Produktpaket die Eigenschaften javacSource und javacTarget in der Datei 'build.properties' des Produktpakets eingestellt werden.   Diese Eigenschaften überschreiben die Werte, die aus den Umgebungseinstellungen abgeleitet wurden.

Analog überschreibt die Einstellung der Eigenschaft bootClasspath in der Datei 'build.properties' des Produktpakets die Einstellung für die JAR-Dateien, mit denen das Produktpaket kompiliert wird.