正如标题所说,当我将程序导出为可运行的jar并将引用的库提取到jar中时,我能够正常运行它并且JDBC能够连接到数据库。但是,当我使用引用的库简单打包导出它时,我收到错误“找不到适合jdbc的驱动程序:mysql:// localhost:3306”。
此外,当我运行它时,程序在Eclipse中运行得很好。这个问题只有在我导出时才会出现。由于该程序将如何实现,我不能将这些库提取到jar中。它们必须与它一起包装。
有什么想法吗?
答案 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