In der Standardeinstellung aktualisiert PDE den Erstellungspfad eines Plug-in-Projekts immer dann, wenn die Liste der Abhängigkeiten im Manifesteditor geändert wird. Falls Sie diese Funktion auf der Benutzervorgabenseite "Plug-in-Entwicklung >Java-Erstellungspfadsteuerung" inaktivieren, müssen Sie selbst daran denken, den Erstellungspfad zu aktualisieren, nachdem Sie die Liste der Abhängigkeiten geändert haben.
Falls Sie den Manifesteditor von PDE nicht unbedingt benötigen, sollten Sie die PDE-Funktion "Erstellungspfad berechnen" nutzen. Mit der Option Klassenpfad aktualisieren..., die im Kontextmenü für alle Dateien "plugin.xml" bzw. "fragment.xml" und alle Java-Plug-in-Projekte verfügbar ist, können Sie den Erstellungspfad Ihres Plug-ins jederzeit explizit aktualisieren. Nach Auswahl dieser Option wird der folgende Assistent geöffnet:
Die Markierungsfeldliste enthält alle Plug-ins und Fragmente im Arbeitsbereich. Wählen Sie die Plug-ins/Fragmente aus, deren Erstellungspfade aktualisiert werden sollen, und klicken Sie auf "Fertig stellen".
Bitte beachten Sie, dass PDE den Erstellungspfad bei der Berechnung völlig neu erstellt. Dies bedeutet, dass alle Einträge, die Sie manuell zum Erstellungspfad hinzugefügt haben, verloren gehen. Der Erstellungspfad wird vollkommen aktualisiert, da PDE ihn rekursiv erstellt, und dies aus den folgenden Gründen:
Wenn ein Plug-in zur Laufzeit auf eine Java-Klasse verweist, wird zunächst in dessen Bibliotheken nach der Klasse gesucht, dann in den Bibliotheken seiner benötigten Plug-ins, dann in den Bibliotheken der von diesen Plug-ins benötigten Plug-ins usw. Um eine ähnliche Suchumgebung während der Entwurfszeit erneut zu erstellen, aktualisiert PDE den Erstellungspfad rekursiv. Es ist möglich, dass unterschiedliche Plug-ins von derselben Bibliothek abhängig sind. Wenn Sie eines dieser Plug-ins aus der Abhängigkeitsliste entfernen, können Sie nicht einfach auch alle Bibliotheken in der entsprechenden Hierarchiekette entfernen, weil sie möglicherweise von anderen Plug-ins benötigt werden, die noch in der Liste enthalten sind. Die einzige Möglichkeit, immer einen gültigen Erstellungspfad zu verwalten, ist es, ihn völlig neu zu erstellen.
Um eine bessere gemeinsame Benutzung von Projekten auf Berechtigungsservern zu ermöglichen, fügt PDE alle externen Bibliotheken zum Erstellungspfad mit Bezug auf die Position der Laufzeitplattform hinzu, die durch eine oder mehrere Java-Klassenpfadvariablen mit dem Suffix ECLIPSE_HOME dargestellt wird. Auf diese Weise funktioniert ein auf den Server gestellter Code unabhängig von der Position der Plattforminstallation. Diese Variablen werden von PDE festgelegt und verwaltet, und Sie können ihre Werte nicht ändern.
Ab Release 2.1 bietet PDE eine Alternative für das Ausdrücken und Berechnen des Klassenpfads. Statt die Einträge für die abhängigen Plug-ins explizit zu erstellen, wird unter Verwendung eines JDT-Klassenpfadcontainers eine Zwischenstufe eingerichtet. Der Container ersetzt alle Einträge für abhängige Plug-ins und stellt einen stabilen und vorhersehbaren Klassenpfad zur Verfügung. Wenn Sie mit dem Klassenpfadcontainer arbeiten, enthält der Klassenpfad einen oder mehrere Quellenordner, einen Container für erforderliche Plug-ins und einen JRE-Container (der Proxy für die echten JRE-Einträge, die während der Verarbeitung berechnet werden, wird über einen identischen Mechanismus bereitgestellt). Diesen Klassenpfad können Sie auf dem Server für eine gemeinsame Benutzung zur Verfügung stellen. Hierbei besteht keine Gefahr, dass er auf den Maschinen und/oder Betriebssysteme anderer Entwickler Fehler verursacht.
Zur Verwendung von Klassenpfadcontainern müssen Sie lediglich die Seite "Benutzervorgaben > Plug-in-Entwicklung >Java-Erstellungspfadsteuerung" öffnen und das Markierungsfeld "Klassenpfadcontainer verwenden..." auswählen. Sie müssen die Klassenpfade Ihres Projekts aktualisieren, damit die vorgenommenen Änderungen angezeigt werden. Sobald Sie auf Klassenpfadcontainern umsteigen, können Sie entweder externe Plug-ins verwenden und/oder binäre Plug-in-Projekte importieren. Der Klassenpfadcontainer bleibt hierbei immer auf dem neusten Stand der Änderungen.