IllegalStateException wurde bei der Installation von Funktionen von der Reißverschluss -Update -Site erhöht
-
27-10-2019 - |
Frage
Ich experimentiere mit der Installation einer Eclipse -Funktion von der Reißverschluss -Update -Site von der Befehlszeile. Zu diesem Zweck verwende ich den folgenden Befehl:
eclipsec.exe -nosplash -application org.eclipse.equinox.p2.director -repository jar:file:///d:\Eclipse_Workspaces\update-site-dummy_workspace\com.experiment.updatesite\experiment_update_site_1.0.0.zip!/ -installIU com.experiment.feature.one.feature.group -profile PlatformProfile
Es funktioniert jedoch kurz vor dem Ende des Installationsprozesses eine Ausnahme wie diese:
Installing com.experiment.feature.one.feature.group 1.0.0.
java.lang.IllegalStateException: Workbench has not been created yet.
at org.eclipse.ui.PlatformUI.getWorkbench(PlatformUI.java:92)
at org.eclipse.equinox.internal.provisional.p2.ui.ProvisioningOperationRunner.requestRestart(ProvisioningOperationRunner.java:171)
at org.eclipse.equinox.internal.p2.ui.ProvUIActivator$1.notify(ProvUIActivator.java:117)
at org.eclipse.equinox.internal.p2.core.ProvisioningEventBus.dispatchEvent(ProvisioningEventBus.java:108)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227)
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:149)
at org.eclipse.equinox.internal.p2.core.ProvisioningEventBus.publishEvent(ProvisioningEventBus.java:85)
at org.eclipse.equinox.internal.p2.engine.SimpleProfileRegistry.broadcastChangeEvent(SimpleProfileRegistry.java:350)
....
Operation completed in 1277 ms.
Die angeforderte Funktion ist installiert, aber ich fühle mich schlecht in dieser Ausnahme - insbesondere auf dem Computer eines Menschen sieht sie nicht gut aus;)
Hier Ich habe einige Informationen zu dieser Ausnahme gefunden: "Java.lang.IillegalstateException: Workbench wurde noch nicht erstellt
Dies kommt normalerweise, wenn jemand versucht, eine Java -Anwendung gegen ein OSGI -Bündel mit Java -Klassenpfad auszuführen .... Es bedeutet wirklich, dass das Workbench-Plug-In noch nicht begonnen hat, und so to GetworkBench () scheitern. Dies ist im Wesentlichen eine Rennbedingung und kann gelöst werden, indem entweder eine explizite Abhängigkeit von diesem Bündel ausdrückt oder dieses Bündel auf ein höheres Startniveau als die Workbench steigt. Im Allgemeinen nicht gesehen, aber wenn es so ist, ist das passiert. "
Meine Frage ist: Hat jemand eine Idee, wie man diese Ausnahme steigt? (ZB Hinzufügen einiger VM -Optionen zum Befehl install))
PS Ich benutze Eclipse 3.4 und es gibt keine Möglichkeit, es auf etwas Neueres zu aktualisieren.
Lösung 2
Heute habe ich ein bisschen mit diesem Problem zu kämpfen und schließlich eine Lösung gefunden. Es fehlte -destination
Argument im Befehl Install, also ist das richtige:
eclipsec.exe -nosplash -application org.eclipse.equinox.p2.director -repository jar:file:///d:\Eclipse_Workspaces\update-site-dummy_workspace\com.experiment.updatesite\experiment_update_site_1.0.0.zip!/ -installIU com.experiment.feature.one.feature.group -profile PlatformProfile -destination .
Andere Tipps
Es wird durch das Bündel verursacht org.eclipse.equinox.p2.ui ist in Ihrer Umgebung aktiv. Standardmäßig starten Sie keine Workbench Beschlossen Staat in der OSGI -Laufzeit. Ich bin mir nicht sicher, warum dieses Bundle in Ihrer Umgebung gestartet wird. Sie können die Datei überprüfen Konfiguration/org.eclipse.equinox.simpleconfigurator/bündel.info, Markieren Sie das Bundle als nicht automatisch.