2011-10-20 27 views
0

我正在嘗試從命令行從壓縮更新站點安裝Eclipse功能。要做到這一點,我使用下面的命令:從壓縮更新站點安裝功能時引發IllegalStateException

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 

它的工作原理,但只是安裝過程結束之前它上升這樣一個例外:

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. 

請求的功能已安裝,但我覺得壞有關此異常 - 特別是它不會看一個人的計算機上不錯;)

Here我發現有關此異常的一些信息: 「java.lang.IllegalStateException:工作臺還沒有被創建

這通常出現在有人試圖使用java -classpath ....對OSGi包運行Java應用程序時。這實際上意味着工作臺插件尚未啓動,因此調用getWorkbench()失敗。這本質上是一種競爭條件,可以通過表達對該捆綁的明確依賴或者將該捆綁提升到比工作臺更高的起始級別來解決。一般不會看到,但如果是這樣,那就是發生了什麼。 「

我的問題是:有沒有人有一個想法如何解決這個上升例外(例如,通過添加一些VM選項安裝命令)

PS我使用Eclipse 3.4和有?沒有辦法將它升級到較新的東西。

回答

0

今天我一直在努力解決這個問題,最後我找到了解決方案。在安裝命令中缺少-destination參數,所以正確的是:

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 . 
1

它通過捆綁org.eclipse.equinox.p2.ui是在你的環境中進行活動引起的。在默認情況下不啓動工作臺,這樣捆綁應該是已解決狀態在OSGi運行時。我不確定爲什麼這個包在你的環境中啓動ronment,你可以檢查文件configuration/org.eclipse.equinox.simpleconfigurator/bundle.info,將捆綁包標記爲不自動啓動。

+0

不幸的是,它已經設置爲'false'。我沒有注意到它是一個UI插件。所以我認爲刪除'-nosplash'選項可能會有所幫助,但事實並非如此。無論如何+1的努力。 – Krokodylowy

+0

一個訣竅就是從日食中刪除** org.eclipse.equinox.p2.ui **。我建議你使用最新的eclipse(比如3.7),導演應用程序應該支持由3.4生成的倉庫。 – Kane