如何在Eclipse插件中打开Java项目?

时间:2010-01-29 10:39:38

标签: java eclipse-plugin

我使用以下代码从字符串中获取IJavaProject类型:

IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
IJavaProject javaProject = JavaCore.create(project);

在此之后,我使用了监视器类型为javaProject.open(monitor);的{​​{1}}来打开项目...我无法打开filr,因为它存在一些问题。显示的例外是:

Java Model Exception: Java Model Status [com.ibm.plugin does not exist]
 at org.eclipse.jdt.internal.core.JavaElement.newJavaModelException(JavaElement.java:501)
 at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:245)
 at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:514)
 at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:251)
 at org.eclipse.jdt.internal.core.Openable.open(Openable.java:431)
 at packagesearch.HelloWorldAction.run(HelloWorldAction.java:49)
 at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:251)
 at org.eclipse.ui.internal.WWinPluginAction.runWithEvent(WWinPluginAction.java:229)
 at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:583)
 at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:500)
 at org.eclipse.jface.action.ActionContributionItem$6.handleEvent(ActionContributionItem.java:452)
 at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
 at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
 at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3823)
 at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3422)
 at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2384)
 at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2348)
 at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2200)
 at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:495)
 at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
 at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:490)
 at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
 at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
 at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
 at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
 at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
 at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:386)
 at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
 at java.lang.reflect.Method.invoke(Method.java:599)
 at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549)
 at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
 at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
 at org.eclipse.equinox.launcher.Main.main(Main.java:1212)

2 个答案:

答案 0 :(得分:3)

正如my previous answer中所述,您的项目不存在,这意味着您正在尝试打开“null”。

因此例外。

答案 1 :(得分:0)

我认为你的意思是IProgressMonitor

IProgressMonitor用于获取并行运行的任务的进度更新(即接近完成的任务),而不是打开资源。

我希望这能解释错误,但我担心我不知道如何打开这个项目。