2010-08-10 81 views

回答

6

的問題是,默認的目標包括許多與您的軟件包無關的軟件包 - 輸入命令當所有的錯誤信息完成後將會列出它們。

這裏就是你要做的:

  1. 在Eclipse中,轉到首選項>插件開發>目標平臺
  2. 創建一個新的空目標定義
  3. 在位置選項卡中,添加包含一個目錄沒有什麼,但Equinox捆綁包(你可以從Eclipse安裝的插件目錄複製,該jar被命名爲org.eclipse.osgi_3.7.0.v20110613.jar)
  4. 確保新目標處於活動狀態並嘗試運行你的包再次
0

首先檢查空插件的依賴關係。可能是你缺少添加一個插件,而不是在運行時加載。

如果你在你的插件的依賴,使用插件的檢查HICH版本。

你在你的插件中定義了哪個Java版本?它比在運行時使用的版本更高嗎?

是你的插件加載DLL嗎?如果是這樣,檢查是否可以在運行時找到DLL。

編輯:

# 工作臺還沒有被創建。 # 在org.eclipse.ui.PlatformUI.getWorkbench(PlatformUI.java:92) # 在org.eclipse.mylyn.internal.monitor.ui.MonitorUiPlugin.start(MonitorUiPlugin.java:145)

你在激活器的啓動方法中定義了什麼? 它表明,您正在使用尚未創建的工作臺。

+0

這是空空如也插件 – 2010-08-10 09:16:31

+0

這是我的激活 http://pastebin.com/6S8a8hnr – 2010-08-10 09:19:48

3

這是主要的問題:

java.lang.IllegalStateException:工作臺還沒有被創建。

您正在使用工作臺或與工作臺相關的方法/對象,而工作臺本身尚未創建。也許你可以延遲bundle的激活或從bundle的激活/初始化部分中移除'workbench'依賴項。


Y,回到開頭。日誌的最後一行包含一個'Hello World' - 這是你的包的預期輸出嗎?也許這不是你的包導致輸出中的錯誤和警告。我也看到一些'mylin'和其他東西。如果可能的話,添加另一個全新的eclipse安裝(無需額外的捆綁包/插件)到您的系統中,並在該環境中嘗試捆綁。


good article on eclipsezone

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

什麼是自己包的超?因爲這可能會在工作臺上引入依賴關係。

而且 - 如何從eclipse中啓動捆綁包,或者你是否已經將它打包並放入eclipse插件文件夾中?這可能會有所作爲。

+0

你知不知道,該如何解決呢? – 2010-08-10 09:16:05

+0

是的,'Hello World它是從我的旁邊輸出的。 我下載了新的Eclipse - 這是相同的錯誤:( – 2010-08-10 09:28:01

0

嘗試運行你的包之前做到這一點:

if(!PlatformUI.isWorkbenchRunning()) { 
    PlatformUI.createAndRunWorkbench(PlatformUI.createDisplay(), new WorkbenchAdvisor() {...}); 
} 
2

這些錯誤都沒有任何與你的包。正如你可以從「Hello World」輸出中看到的,你的軟件包開始就很好。

我相信你是以錯誤的方式啓動Eclipse,可能是熱切地激活所有的捆綁包。 Eclipse需要在「lazy activation」模式下以大多數工作臺捆綁開始。

  1. 請指定如何啓動Eclipse。您是否將-console添加到eclipse.ini文件?
  2. 當您不嘗試使用自己的捆綁包時會發生此問題嗎?
  3. 你如何安裝和激活你自己的包?
  4. ,請複製粘貼下列文件:
    • MANIFEST.MF從自己的包
    • config.iniECLIPSE_HOME/configuration
    • eclipse.iniECLIPSE_HOME
5

我掙扎了很多「工作臺尚未創建」整天。

但我得到通過以下的解決步驟 .-

  1. 轉到運行配置 - >刪除所有目標平臺罐子。
  2. 點擊添加需要的捆綁包。
  3. 檢查org.apache.felix.gogo.runtime,org.apache.felix.gogo.shell,org.eclipse.eqinox.console,org.eclipse.osgi和您的jar文件。
  4. 最後也是重要的一步。前往設置->檢查複選框「在啓動之前清除配置區域」。
  5. 現在運行OSGi應用程序。
  6. 如果它適合你,就像它適合我一樣。

感謝

+0

哪裏是'添加必需的捆綁'? – Anthony 2016-10-17 13:45:06