eclipse工作区是封闭的问题

时间:2009-11-11 10:54:12

标签: 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.amsp.test.EMFCodeGen.load(EMFCodeGen.java:37)
  at amdocs.amsp.test.EMFCodeGen.main(EMFCodeGen.java:26)

你能告诉我如何从eclipse的独立java程序中访问工作区。 (有一个类路径,包含所需的所有jar)

3 个答案:

答案 0 :(得分:1)

您是否尝试在基于OSGi的应用程序(例如eqinox)中执行此操作?因为工作空间是在应该由框架管理的org.eclipse.core.resources包的开始时创建的,所以您的例外意味着该包可能尚未启动。

答案 1 :(得分:0)

据我了解,使用ResourcesPlugin.getWorkspace()检索的工作区是运行平台正在使用的工作区,如果Platform.isRunning()。因此,如果您运行的是普通的Java应用程序,而不是Eclipse应用程序,则不会出现 工作区。

答案 2 :(得分:0)

如果您想像这样运行您的应用程序,它必须是无头的。下面你可以看到如何创建一个无头项目: Going Headless