我将HTML文件用于欢迎页面。我想使用
从介绍页面打开Eclipse向导href="http://org.eclipse.ui.intro/runAction?pluginId=MobileTalk&class=mobiletalk.intro.ShowPerspectiveIntroAction"
在班级ShowPerspectiveIntroAction
中,我的代码如下:
Class c = Class.forName("tttt.ddt.plugin.project.NewTtttProjectWizard");
Wizard wizard = (Wizard) c.newInstance();
WizardDialog dialog = new WizardDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),wizard);
dialog.open();
但我收到错误:classnotfound:tttt.ddt.plugin.project.NewTtttProjectWizard
如何正确地从介绍页面打开任何Eclipse向导?
答案 0 :(得分:2)
从查看代码我怀疑它是类加载器问题。在Eclipse / OSGI中使用Class.forName不是一种安全的做法,因为每个插件/ bundle都使用自己的类加载器,因此很多时候会发生Class Not Found Exceptions。更好的方法是通过执行以下操作来获取包含向导类的Bundle / Plugin:Platform.getBundle(“com.stackoverflow.myplugindId”),它返回Bundle的实例。然后在bundle的实例上调用.loadClass(“tttt.ddt.plugin.project.NewTtttProjectWizard”),它将使用正确的类加载器,然后一旦你有了Class的实例,就可以调用newInstance()方法解决您找不到的课程问题。希望有帮助,类加载在OSGI环境中更复杂,因为出于安全原因,每个插件都有自己的类加载器,因此我建议不要在代码中使用Class.forName。 - 邓肯