当将库提取到可运行的jar中时,JDBC运行正常,但是当它们刚刚打包时则不行

时间:2016-07-01 21:24:00

标签: java mysql eclipse jdbc jar

正如标题所说,当我将程序导出为可运行的jar并将引用的库提取到jar中时,我能够正常运行它并且JDBC能够连接到数据库。但是,当我使用引用的库简单打包导出它时,我收到错误“找不到适合jdbc的驱动程序:mysql:// localhost:3306”。

此外,当我运行它时,程序在Eclipse中运行得很好。这个问题只有在我导出时才会出现。由于该程序将如何实现,我不能将这些库提取到jar中。它们必须与它一起包装。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

请勿将第三方库解压缩到JAR中。它违背了JAR的整个目的,即将库彼此独立地打包。这是一个非常非常糟糕的主意。

完全是什么意思“将它与引用的库一起导出简单打包”?请列出所涉及的完全步骤,以便我们回答您的问题。当你“打包”你的应用程序时,你几乎肯定没有做正确的事情。既然我们不知道你做错了什么,我们就无法帮助。

通常,您将库JAR放在放置应用程序JAR的目录的相同目录或受控子目录中。您可以使用应用程序JAR的清单在类路径中指定它们。阅读JAR文件,了解如何做到这一切。

您可以使用安装程序将JAR和所有相关JAR打包在一起,或者只是将它们放在一起提取到部署目录中的ZIP(或JAR)文件中。不在最外面的ZIP中,但在实际的应用程序中,JAR是将清单与classpath放在一起的地方。

部署的目录结构将是这样的:

application_directory/
  |
  |-- yourApplication.jar
  |
  |-- lib/
        |-- thirdParty.jar
        |-- anotherThirdParty.jar
        |-- someOther.jar
        |-- ...

请阅读Oracle文档中的JAR文件及其清单结构。 http://www.oracle.com/technetwork/java/javase/documentation/index.html