【问题标题】:Adding an external JAR to Eclipse Application debug configuration将外部 JAR 添加到 Eclipse 应用程序调试配置
【发布时间】:2012-09-06 21:14:54
【问题描述】:

问题如下:

  1. 我安装并运行了第 3 方 Eclipse 插件

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

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

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

问题是 - 我能否以某种方式将基本上是外部 JAR 文件的内容添加到 Eclipse 应用程序调试/运行配置中?

通常,将 JAR 添加到类路径选项卡将适用于常规 Java 应用程序调试/运行。然而,Eclipse 应用程序没有该选项卡。

目前所做的努力(失败,可能是由于一些愚蠢的语法错误或其他原因)包括:

  1. 将 JAR 作为依赖项添加到插件的 Bundle-ClassPath: 中,为 C:\test.jar
  2. 将 JAR 添加到系统的 CLASSPATH 变量中

这些都没有任何区别 - 引用 JAR 文件中的类的“扩展点”中的代码失败 - 异常归结为:

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

任何指针/帮助/批评将不胜感激。

更新

显然将 JAR 放在插件的 lib 目录中并更新 MANIFEST 文件不起作用(并不是说它会帮助我 - 因为这样的解决方案需要“刷新”,我试图避免首先),所以我一定是做错了什么。

这有什么意义吗?还是我在其中一次尝试中错过了什么?

【问题讨论】:

    标签: java debugging eclipse-plugin classpath


    【解决方案1】:

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

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

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

    【讨论】:

    • 因为我根本不记得这个细节(快一年过去了),我无法接受答案。不过我会 +1。
    【解决方案2】:

    基于一些假设的初步猜测:

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

    【讨论】:

    • 因为我根本不记得这个细节(快一年过去了),我无法接受答案。不过我会 +1。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-23
    • 2016-03-04
    • 1970-01-01
    • 1970-01-01
    • 2019-10-04
    • 1970-01-01
    • 2012-01-22
    相关资源
    最近更新 更多