2016-07-01 31 views
0

正如标题所说,当我导出我的程序作为一个可运行的jar与引用的库提取到jar中,我能够运行它只是很好,并且JDBC能够连接到数据库。但是,当我将它与简单打包的引用库一起导出时,出现错误“找不到适用于jdbc的驱动程序:mysql:// localhost:3306”。JDBC运行良好时,库提取到可运行jar,但不是当他们只是包装

此外,当我运行它时,该程序在Eclipse中工作得很好。这个问题只在我输出时出现。由于该程序将如何实施,因此我无法将这些库提取到jar中。它们必须与它一起包装。

任何想法?

+0

请解释你的意思*“我不能将库提取到jar中,它们必须和它一起打包。”*。通过“与之并列”,你的意思是“在包含我写的代码的类的可运行jar包之外”吗?如果是这样,那就是Eclipse导出(到可运行jar)对话框中的“复制”选项。 –

回答

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 
     |-- ... 

做JAR文件和Oracle文档中他们的表现结构中读取了。 http://www.oracle.com/technetwork/java/javase/documentation/index.html

相关问题