2011-06-02 122 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

相关问题