将外部JAR添加到Eclipse Application调试配置

时间:2011-10-24 10:16:46

标签: java debugging eclipse-plugin classpath

问题如下:

  1. 我已经安装并运行了第三方Eclipse插件

  2. 上面的Eclipse插件提供了各种类型的“扩展点” - 我可以在插件lib目录中扩展/重写和替换的类的源代码(我不是说这是一个好主意,但必要性使我们做了我们并不自豪的事情 - 内部开发有其怪癖)

  3. 这里的想法是在外部JAR(由我们创建)中包含任何此类更改,以便代码中的任何更改都不需要我们重新启动Eclipse以在开发期间“刷新”“扩展点”类

  4. 最终,将创建一个插件/包,并将其作为原始插件的依赖项放置 - 这样安装和使用该插件实际上就可以了。

  5. 问题是 - 我可以以某种方式将基本上是外部JAR文件添加到Eclipse Application调试/运行配置中吗?

    通常,将JAR添加到classpath选项卡可用于常规Java应用程序调试/运行。但是,Eclipse Application没有该选项卡。

    到目前为止,努力(失败,可能是由于一些愚蠢的语法错误或诸如此类)包括:

    1. 将JAR作为依赖项添加到插件的Bundle-ClassPath: C:\test.jar
    2. 将JAR添加到系统的CLASSPATH变量
    3. 这些都没有任何区别 - 引用JAR文件中的类的“扩展点”中的代码失败 - 异常归结为:

      Caused by: java.lang.ClassNotFoundException: test.Test
      at org.eclipse.osgi.internal.loader.BundleLoader.
           findClassInternal(BundleLoader.java:506)
      

      非常感谢任何指针/帮助/批评。

      更新

      显然将JAR放在插件的lib目录中并更新MANIFEST文件不起作用(不是它会对我有所帮助 - 因为这样的解决方案需要“刷新”,我试图避免首先,所以我必须做一些根本错误的事情。

      这是否有意义,或者我在其中一次尝试中遗漏了什么?

2 个答案:

答案 0 :(得分:2)

我在我的Eclipse应用程序中包含了一个外部JAR文件.....不是调试/运行配置,而是应用程序本身。

我们所做的是将插件包装到自己的java项目中。我们正在使用maven进行构建,因此pom.xml将依赖项列为.jar文件(我们将其放入项目中的lib目录中)。 manifest.mf文件导出所需的类。我的应用程序插件依赖于此项目。当我在工作台中调试/运行应用程序时,我只需确保包含此库项目。

我不确定这是否完全回答了你的问题......但我希望它有所帮助。

答案 1 :(得分:2)

基于某些假设的第一个猜测:

您正在开发第三方扩展点'foo'的扩展程序。您的应用程序是Eclipse应用程序,您可以通过运行配置启动它。您需要创建一个新的插件'foo-extension'来实现扩展点。您必须将新插件作为插件依赖项添加到您的应用程序中。这样,它将在项目类路径中以及运行配置的“插件 - 插件”选项卡中可用。选择新项目,当您启动应用程序时,扩展程序将随最新更改一起提供。