【问题标题】:How do you package the JDBC jar in an extension?如何将 JDBC jar 打包到扩展中?
【发布时间】:2011-12-21 09:47:13
【问题描述】:

我正在为 BlueJ IDE 开发一个插件。这些插件打包为简单的 JAR 文件,位于 BlueJ 项目中。该插件涉及向 MySQL 服务器提交(有时是获取)数据。我使用路径中的 JDBC 连接器(作为 JAR)运行它。我需要让学生轻松安装该插件,他们只需将其放入文件夹即可。有没有办法将 JDBC 部分与我的扩展一起保留,而不必将其单独放在学生的机器上?

我从http://www.objectsource.com/j2eechapters/Ch21-ClassLoaders_and_J2EE.htm 阅读了一些关于 ClassLoaders 的信息。但我还没有找到一个很好的方法来做我所要求的。顺便说一句,我正在使用 Eclipse。

当提到清单时,这个问题与我最后想要的非常接近: Deployment Concepts: Packaging JAR Dependencies, When & Why

我现在唯一的问题是我需要知道如何编辑清单文件,以便将我的扩展程序指向它自己的目录以找到 JDBC 连接器。

希望这是有道理的。感谢您的帮助!

【问题讨论】:

    标签: java mysql eclipse plugins bluej


    【解决方案1】:

    一种可能的解决方案是解压缩 JDBC 连接器并将其与您的代码一起打包到一个大 jar 文件中。如果您没有任何包命名冲突,则一切正常。

    【讨论】:

    • 这是一个有趣的解决方案,我没有考虑过。因为基本上连接jar的那一行是Class.forName("com.mysql.jdbc.Driver");那么您建议我忽略这一行,而是将其全部导入为一个包,然后实例化诸如“正常”之类的东西?我只是有点震惊,它可以这么容易。当我进入我的开发机器时,我会尽快尝试这个,然后更新它的进展情况。谢谢!
    • 遗憾的是,这似乎不是一个可行的解决方案。当我尝试在 JAR 中移动包时,我收到大量关于不正确的权限和依赖关系等的错误消息。感谢您的提示,但我认为此解决方案不适用于我。
    • 我通过编辑清单文件让它工作。很容易。感谢您的贡献!
    • 警告 - 这样做可能会违反 JDBC 驱动程序的许可。 MySQL 连接器/J 库是 GPL 版本 2。
    • 嘿斯蒂芬,感谢您指出这一点。我什至没有想到。还好没成功!
    【解决方案2】:

    我设法通过编辑我的扩展的清单文件来解决我的问题。在构建时,我按照这里的指示进行操作

    http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Ftasks%2Ftasks-35.htm

    在初始打包后,我编辑了生成的文件以包含我的 JDBC JAR 行。此步骤取自此站点:

    http://download.oracle.com/javase/tutorial/deployment/jar/downman.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-18
      • 1970-01-01
      • 2019-01-23
      • 2013-03-19
      相关资源
      最近更新 更多