2010-01-29 40 views
1

我用下面的代码从字符串获得IJavaProject类型:如何在Eclipse插件中打开Java项目?

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

在此之后,我用javaProject.open(monitor);,其中显示器是IProgreeMonitor类型,打开项目......我不能打开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) 

回答

3

如在my previous answer中提到的,您的项目不存在,这意味着您正试图打开'null'。

因此例外。

+0

感谢您的回复 – Steven 2010-01-30 09:53:11

0

我假定你的意思是IProgressMonitor

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

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