Java eclipse工作区是一个封闭的问题
如何从java程序访问eclipse工作区。 当我使用Java eclipse工作区是一个封闭的问题,java,eclipse,Java,Eclipse,如何从java程序访问eclipse工作区。 当我使用IWorkspace workspace=ResourcesPlugin.getWorkspace().getRoot()时,会出现如下异常 java.lang.IllegalStateException: Workspace is closed. at org.eclipse.core.resources.ResourcesPlugin.getWorkspace(ResourcesPlugin.java:329) at amdocs
IWorkspace workspace=ResourcesPlugin.getWorkspace().getRoot()
时,会出现如下异常
java.lang.IllegalStateException: Workspace is closed.
at org.eclipse.core.resources.ResourcesPlugin.getWorkspace(ResourcesPlugin.java:329)
at amdocs.amsp.test.EMFCodeGen.load(EMFCodeGen.java:37)
at amdocs.amsp.test.EMFCodeGen.main(EMFCodeGen.java:26)
您能告诉我如何从eclipse外部的独立java程序访问工作区吗。(当然有一个包含所有jar的类路径)您是否试图在基于OSGi的应用程序(例如eqinox)中实现它?因为工作区是在应该由框架管理的
org.eclipse.core.resources
捆绑包启动时创建的,所以您的异常意味着该捆绑包可能还没有启动。您是否试图在基于OSGi的应用程序(例如eqinox)中执行此操作?因为工作区是在应该由框架管理的org.eclipse.core.resources
捆绑包启动时创建的,所以您的异常意味着捆绑包可能还没有启动。据我所知,使用ResourcesPlugin.getWorkspace()检索的工作区是运行平台正在使用的工作区,如果Platform.isRunning()
。因此,如果您运行的是普通Java应用程序,而不是Eclipse应用程序,则不存在工作区。据我所知,使用ResourcesPlugin.getWorkspace()检索的工作区是运行平台正在使用的工作区,如果Platform.isRunning()
。因此,如果您运行的是普通Java应用程序,而不是Eclipse应用程序,那么就不存在工作区。如果您想这样运行应用程序,它必须是无头的。下面您可以看到如何创建无头项目:
如果您想这样运行应用程序,它必须是无头的。下面您可以看到如何创建无头项目: