如何使项目类对Eclipse插件可见?

时间:2011-08-03 02:39:16

标签: eclipse eclipse-plugin

我是eclipse插件开发的新手,我继承了一些Eclipse插件代码,我试图弄清楚如何做一些相对简单的事情。

简而言之,右键单击项目中的Java类,向导将打开,所选Java类的完全限定类名将显示在文本字段中。当您单击“下一步”时,代码会尝试执行CClass.forName(s),其中s是类名。

问题是,Class.forName抛出了一个未找到类的异常,我假设因为eclipse项目中的Java类实际上并不在向导的类路径中。

有人能指出我正确的方向吗?我如何确保向导可以看到eclipse项目中的类,类路径?

3 个答案:

答案 0 :(得分:1)

您不能使用Class.forName()。插件操作的Java项目中的java类甚至与插件不在同一个进程中,更不用说加载到任何类加载器了。

您应该查看JDT的Java Model或Java AST API,以创建一个在Java项目中对Java文件进行操作的插件。

http://www.vogella.de/articles/EclipseJDT/article.html

答案 1 :(得分:1)

每个插件都由不同的类加载器加载。但是,有一些方法可以从其他插件加载类。阅读这些将有助于

http://www.eclipsezone.com/articles/eclipse-vms/

http://wiki.eclipse.org/index.php/Context_Class_Loader_Enhancements

答案 2 :(得分:0)

首先必须在选定的java项目中获取类加载器,然后使用类加载器加载类。 Java项目的类加载器与eclipse插件中的类加载器不同。请参阅以下链接中的详细代码:https://sdqweb.ipd.kit.edu/wiki/JDT_Tutorial:_Class_Loading_in_a_running_plugin

链接上的代码将教您如何获取所选项目的类加载器。