Ihr Plug-in kann über den Erweiterungspunkt org.eclipse.debug.core.launchConfigurationTypes Startkonfigurationstypen zur Plattform hinzufügen. Über diesen Erweiterungspunkt können Sie einen Konfigurationstyp deklarieren, der eine eindeutige ID verwendet. Sie müssen eine entsprechende Implementierung von ILaunchConfigurationDelegate angeben. Der Stellvertreter ist für den Start seiner Startkonfiguration in einem angegebenen Modus verantwortlich. Optional können Sie ILaunchConfigurationDelegate2 implementieren, wodurch die Stellvertreterschnittstelle so verbessert wird, dass es Ihrem Stellvertreter ermöglicht wird, einen Start abzubrechen, entsprechende Projekte im Arbeitsbereich vor einem Start zu erstellen und die Erstellung des Startobjekts in einem Start zu kontrollieren.
Zusätzlich zu der Bestimmung des Stellvertreters können Sie angeben, welche Startmodi durch Ihren Stellvertreter unterstützt werden und Sie können einen Namen angeben, der verwendet werden soll, wenn dem Benutzer Startprogramme dieses Typs angezeigt werden.
Die folgenden Befehle zeigen, wie die Java-Tools eine Java-Startkonfiguration zum Starten lokaler Java-Programme deklarieren:
<extension point = "org.eclipse.debug.core.launchConfigurationTypes"> <launchConfigurationType id="org.eclipse.jdt.launching.localJavaApplication" name="%localJavaApplication" delegate="org.eclipse.jdt.internal.launching.JavaLocalApplicationLaunchConfigurationDelegate" modes= "run, debug" sourceLocatorId="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector" sourcePathComputerId="org.eclipse.jdt.launching.sourceLookup.javaSourcePathComputer"> </launchConfigurationType> </extension>
Diese Erweiterung definiert einen Startkonfigurationsstellvertreter, der verwendet werden kann, um Programme auszuführen oder zu debuggen, die mit Hilfe der lokalen Java-Startkonfiguration gestartet worden sind.
Wir haben bereits zuvor erwähnt, dass die Plattform Startmodi für Ausführung, Debug oder Profilerstellung eines Programms definiert. Diese Modi werden mit Hilfe des Erweiterungspunktes org.eclipse.debug.core.launchModes erstellt. Dieser Erweiterungspunkt ermöglicht Ihnen, einen Startmodus durch Definieren seines Zeichenfolge-Modusnamens und des Etiketts, das dem Benutzer zur Beschreibung des Modus angezeigt werden sollte, zu deklarieren. Das folgende Formatierungssteuerzeichen zeigt die Definition der drei Standardstartmodi der Plattform:
<extension point="org.eclipse.debug.core.launchModes"> <launchMode label="%run" mode="run"> </launchMode> <launchMode label="%debug" mode="debug"> </launchMode> <launchMode label="%profile" mode="profile"> </launchMode> </extension>
Beachten Sie, dass der Modus keinem besonderen Startkonfigurationstyp zugeordnet ist. Wie zuvor gezeigt, erfolgt diese Zuordnung, wenn ein Startstellvertreter für einen Konfigurationstyp angegeben worden ist.
Da Startmodi unabhängig von Startkonfigurationstypen angegeben werden können, ist es möglich, dass neue Modi definiert werden, die durch den ursprünglichen Stellvertreter nicht für eine Startkonfiguration implementiert werden. In diesem Fall kann ein Plug-in einen Startstellvertreter definieren, der einen bestimmten Modus für einen bestimmten Startkonfigurationstyp definiert. Dies kann mit Hilfe des Erweiterungspunkts org.eclipse.debug.core.launchDelegates erfolgen. Dieser Erweiterungspunkt ermöglicht Ihnen die definition eines Startstellvertreters, der die angegebenen Modi für einen gegebenen Konfigurationstyp implementiert. Das folgende Formatierungssteuerzeichen zeigt, wie Sie einen Stellvertreter für die Profilerstellung einer lokalen Java-Anwendung definieren könnten:
<extension point="org.eclipse.debug.core.launchDelegates"> <launchDelegate id="com.example.MyJavaProfileDelegate" delegate="com.example.MyJavaProfileDelegate" type="org.eclipse.jdt.launching.localJavaApplication" modes="profile"> </launchDelegate> </extension>
Die Spezifikation des Stellvertreters ist ähnlich wie bei der Definition eines Startkonfigurationstyps, außer dass in diesem Fall der Typ der Startkonfiguration zusammen mit den unterstützten Modi angegeben wird. Wie zuvor gesehen, muss der Stellvertreter ILaunchConfigurationDelegate implementieren und kann optional ILaunchConfigurationDelegate2 implementieren, um mehr Kontrolle über die Startsequenz zu haben.
We Have Lift-off: The Launching Framework in Eclipse zeigt ein vollständiges Beispiel für die Definition Ihres eigenen Starttyps.