【问题标题】:How to make project classes visible to the Eclipse plugin?如何使项目类对 Eclipse 插件可见?
【发布时间】:2011-08-03 02:39:16
【问题描述】:

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

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

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

谁能指出我正确的方向?如何确保 eclipse 项目中的类对向导可见,类路径方式?

【问题讨论】:

    标签: eclipse eclipse-plugin


    【解决方案1】:

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

    您应该查看 JDT 的 Java 模型或 Java AST API 来制作一个对 Java 项目中的 Java 文件进行操作的插件。

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

    【讨论】:

      【解决方案2】:

      每个插件都由不同的类加载器加载。但是,您可以通过多种方式从其他插件加载类。阅读这些会有所帮助

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

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-05-17
          • 2011-09-19
          • 2023-03-08
          • 2012-03-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多