我目前正在尝试使用 eclipses 工作区访问我的 eclipse 项目 和项目抽象,但我很快就失败了。
请看下面的代码:
public static void main(String[] args) throws Exception {
String[] equinoxArgs = { "-debug", "-data", "C:\\dev\\build\\workspace" };
EclipseStarter.startup(equinoxArgs, null);
IWorkspace workspace = ResourcesPlugin.getWorkspace();
System.out.println(workspace);
}
如果我执行它,我会得到:
Exception in thread "main" java.lang.IllegalStateException: Workspace is closed.
at org.eclipse.core.resources.ResourcesPlugin.getWorkspace(ResourcesPlugin.java:399)
at de.jaculon.samples.osgi.OsgiSample.main(OsgiSample.java:21)
有人知道如何解决这个问题吗?
感谢您的帮助。
最佳答案
EclipseStarter
不会初始化 Eclipse 工作区。
要运行 headless
Eclipse 应用程序,您必须定义一个在插件中实现 org.eclipse.equinox.app.IApplication
的类。
在 plugin.xml
中定义一个应用程序:
<extension
id="app-id"
point="org.eclipse.core.runtime.applications">
<application
cardinality="singleton-global"
thread="main"
visible="true">
<run
class="application class">
</run>
</application>
</extension>
然后您运行应用程序
java -jar plugins/org.eclipse.equinox.launcher_xxx.jar -application application-id -debug -data datapath
关于java - 调用 ResourcesPlugin.getWorkspace() 时出现 IllegalStateException : Workspace is closed,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21435598/