Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在没有Eclipse的情况下创建IProject_Java_Eclipse_Eclipse Plugin - Fatal编程技术网

Java 如何在没有Eclipse的情况下创建IProject

Java 如何在没有Eclipse的情况下创建IProject,java,eclipse,eclipse-plugin,Java,Eclipse,Eclipse Plugin,我正在尝试将Eclipse的第三部分插件mavenize, 但是我需要创建一个IProject实例,并在JavaCore.create(instance)处传递,以获得一个IJavaProject实例 这个应用程序将不会有工作区,并且将更好地尽可能少地依赖eclipse的库 所以我不能用: ResourcesPlugin.getWorkspace().getRoot().getProject(...); 当我尝试启动程序时,我收到以下错误报告: Exception in thread "mai

我正在尝试将Eclipse的第三部分插件mavenize, 但是我需要创建一个IProject实例,并在
JavaCore.create(instance)
处传递,以获得一个IJavaProject实例

这个应用程序将不会有工作区,并且将更好地尽可能少地依赖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之外创建这个实例,只是传递我需要的项目路径? 一些想法?

简短的回答是:不

工作区需要启动OSGi框架,并设置
OSGi.instance.area
属性。它还需要启动其他一些org.eclipse.core.runtime服务

create(*)在JDT中。。。org.eclipse.jdt.core的部分可能在没有UI工作台的情况下运行,但这实际上取决于哪些部分


运行一个包含org.eclipse.core.runtime和org.eclipse.core.resources(工作区)的无头RCP应用程序可能不包含任何UI组件,但如果不启动OSGi和core运行时,您将无法使用工作区。

如果您只需要用maven构建eclipse插件或OSGi捆绑包,您考虑过Tycho吗?因此,如果没有eclipse工作区,就无法将外部“.java”文件作为IFile或ICompilationUnit传递?如果答案是肯定的,有没有一种方法可以模拟eclipse开放工作区?我试图在web上找到一些东西,但没有任何帮助。不,为了获得
IFile
,.java文件必须位于工作区中的eclipse项目中(并且org.eclipse.core.resources必须正确启动)。为了获得一个
ICompilationUnit
,您必须获得一个
IFile
,并且JDT核心必须正确启动。@Davide我不确定您称之为“模拟打开工作区”。工作区可以在没有UI的java程序中使用。您需要:a)启动OSGi容器,b)定义JDT将存储一些元数据的位置。这样做不需要Eclipse UI。看看我的博客文章,我在其中解释了这一点:设置是在一个常规的maven项目中进行的(OSGi部分使用bnd maven插件)