Java 使用CDTAPI的无头插件
我正在尝试创建一个无头插件来更新Eclipse中C项目的.cproject文件。 为此,我使用cdt API,如:Java 使用CDTAPI的无头插件,java,eclipse,eclipse-plugin,eclipse-cdt,headless,Java,Eclipse,Eclipse Plugin,Eclipse Cdt,Headless,我正在尝试创建一个无头插件来更新Eclipse中C项目的.cproject文件。 为此,我使用cdt API,如: CoreModel model=CoreModel.getDefault(); ICProjectDescription description = model.getProjectDescription(project); 这种代码适用于ui Eclipse,但适用于我的headless应用程序, 我得到错误:java.lang.IllegalStateException:尚未
CoreModel model=CoreModel.getDefault();
ICProjectDescription description = model.getProjectDescription(project);
这种代码适用于ui Eclipse,但适用于我的headless应用程序,
我得到错误:java.lang.IllegalStateException:尚未创建工作台
错误的完整堆栈跟踪是:
java.lang.NullPointerException
at rcpPluginProject.headless.Application.start(Application.java:234)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:660)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:597)
at org.eclipse.equinox.launcher.Main.run(Main.java:1468)
at org.eclipse.equinox.launcher.Main.main(Main.java:1441)
发生了一个错误。查看日志文件
C:\Users\attiaschloe\Documents\Tasking\u plugin\runtime-rcpPluginProject.application.metadata.log
有一个cdt headless builder(下面链接中的源代码)在headless模式下使用这些api,但是当我运行类似的代码时,我得到了相同的错误。
有人知道我需要做些什么才能让这些api在headless模式下工作吗
谢谢你的帮助 你是否有一个堆栈跟踪,准确地显示是什么导致了错误?!从插件调用代码时出现消息问题:“org.eclipse.equinox.preferences”!堆栈0 java.lang.IllegalStateException:尚未创建工作台。在org.eclipse.ui.PlatformUI.getWorkbench(PlatformUI.java:95)上。。。在很多时候,是的,我只是把它贴在整个堆栈跟踪之上,而不仅仅是最后一点。您正在调用的东西是引用需要GUI运行的东西,完整的堆栈跟踪将显示正在执行的操作。您的问题并添加完整跟踪。该堆栈跟踪用于代码中的空指针异常,而不是非法状态异常。应用程序代码的第234行有错误。