如何从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)
答案 0 :(得分:1)
您是否尝试在基于OSGi的应用程序(例如eqinox)中执行此操作?因为工作空间是在应该由框架管理的org.eclipse.core.resources
包的开始时创建的,所以您的例外意味着该包可能尚未启动。
答案 1 :(得分:0)
据我了解,使用ResourcesPlugin.getWorkspace()
检索的工作区是运行平台正在使用的工作区,如果Platform.isRunning()
。因此,如果您运行的是普通的Java应用程序,而不是Eclipse应用程序,则不会出现 工作区。
答案 2 :(得分:0)
如果您想像这样运行您的应用程序,它必须是无头的。下面你可以看到如何创建一个无头项目: Going Headless