【问题标题】:Eclipse rcp - how to load jdbc driver?Eclipse rcp - 如何加载 jdbc 驱动程序?
【发布时间】:2026-01-14 10:30:02
【问题描述】:

我想知道是否有人可以给我一些关于如何执行以下操作的说明:

  1. 如何将mysql连接JAR文件添加到Eclipse插件构建路径
  2. 如何将连接器 JAR 文件添加为库并添加到插件的运行时类路径中

我在尝试使用 Class.forName("com.mysql.jdbc.Driver") 加载驱动程序类时遇到 com.mysql.jdbc.Driver 异常。我已通过右键单击项目名称并选择添加库按钮将 jdbc 驱动程序添加到项目中。但是我发现对于 eclipse rcp 项目有一种不同的方式来添加 jdbc jar 文件。

【问题讨论】:

    标签: jdbc eclipse-plugin eclipse-rcp


    【解决方案1】:

    将您的 jdbc 驱动程序 jar 添加到包类路径(每个 RCP 插件都是一个 OSGi 包)。为此,您可以直接编辑 META-INF/MANIFEST.MF 或使用 PDE 提供的清单编辑器(运行时点击下的类路径部分)。

    一般来说,您永远不应该直接编辑插件项目的类路径。

    【讨论】:

      【解决方案2】:

      我从未在 Eclipse 中使用过 mysql,但我已经使用 postgres sql 完成了这项工作。也许这会对你有所帮助:

      • 在包资源管理器中右键单击项目
      • 构建路径
      • 添加外部档案...
      • 选择您的 mysql jar 存档
      • 按确定
      • 现在应该在包资源管理器下的“引用的库”中引用该库。现在尝试再次运行您的程序。

      【讨论】:

      • 这是完全错误的。通过这样做,jar 文件将不会被添加到包类路径中。一旦从 IDE 启动,这样的插件项目可能会工作。但如果插件被导出并作为 RCP 应用程序的一部分运行,肯定会失败。
      • 我不是专家,但我设法通过在 java 命令行上设置类路径使其工作。我敢肯定还有其他选择。
      • 尝试导出这个插件(或 rcp 应用程序),看看它是否可以工作。如果您尝试使用“PDE 工具/更新类路径”更新类路径 - 直接添加到项目中的库将消失,因为它未在捆绑清单中提及。请注意,我们正在谈论 Plugin/RCP 项目。如果它是一个普通的 java 项目 - 那么你的解决方案将是 100% 正确的。
      【解决方案3】:
      1. 运行“PDE 工具/更新类路径”;

      2. mysql jar 必须在项目 lib 目录中。

      3. 在项目“Java build path”中,选择项目lib目录下的mysql jar。

      【讨论】:

        【解决方案4】:

        请在 jar-plugin 的 MANIFEST.MF 中使用 DynamicImport-Package: *,并将 mysql.jar 作为运行时类路径。 它有助于Class.forName("com.mysql.jdbc.Driver") 导入想要的包。

        【讨论】:

        • 事实上 mysql jar 是一个包,如果你删除它的 MANIFEST.MF 的 Bundle 条目,你可以从你的 plugin-jar 使用 Class.forName("...") 作为 hsqldb.jar