2011-06-02 123 views
1

我想要初始化Eclipse的第三部分插件 ,但我需要創建一個IProject實例來通過JavaCore.create(instance)來獲取IJavaProject的一個實例。如何在沒有Eclipse的情況下創建IProject

這個應用程序將不會有工作區,並且會更好,依賴於eclipse的庫,儘可能少。

所以我不能使用:

ResourcesPlugin.getWorkspace().getRoot().getProject(...); 

當我開始我的節目,我有這樣的錯誤報告:

Exception in thread "main" java.lang.IllegalStateException: Workspace is closed. 
    at org.eclipse.core.resources.ResourcesPlugin.getWorkspace(ResourcesPlugin.java:367) 
    at gr.uom.java.jdeodorant.helpers.JavaProjectHelper.createJavaProject(JavaProjectHelper.java:55) 
    at gr.uom.java.jdeodorant.refactoring.actions.Index.initializeJavaProject(Index.java:28) 
    at gr.uom.java.jdeodorant.refactoring.actions.Index.main(Index.java:53) 

那麼,有沒有方法來創建Eclipse的外面這種情況下,只是通過我需要的項目的路徑? 有些想法?

+0

如果您只需要使用maven構建eclipse插件或OSGi包,您是否考慮過Tycho - http://www.eclipse.org/tycho/ – 2011-06-02 14:47:07

回答

3

簡而言之:沒有。

工作區需要OSGi框架啓動,並設置osgi.instance.area屬性。它還需要一些其他org.eclipse.core.runtime服務啓動。

JavaCore.create(*)位於JDT ...部分org.eclipse.jdt.core可能在沒有UI工作臺的情況下運行,但這取決於哪些部分。

可能可以運行一個無頭RCP應用程序,包括org.eclipse.core.runtimeorg.eclipse.core.resources(工作區),不包括任何的UI組件,但你贏了無法啓動OSGi和核心運行時,無法使用工作區。

+0

因此,無法將外部「.java」文件作爲IFile或ICompilationUnit沒有Eclipse工作區? 如果答案是肯定的, 有沒有辦法模擬eclipse打開工作區? 我試圖在網上找到一些東西,但沒有什麼幫助 – Davide 2011-06-08 09:05:56

+0

不,爲了得到一個'IFile',**。java **文件必須位於工作空間中的eclipse項目中(和org.eclipse.core.resources必須正確啓動)。爲了獲得'ICompilationUnit',你必須得到一個'IFile',並且JDT核心必須正確啓動。 – 2011-06-08 11:21:26

相關問題