在某些情况下,在胖罐中打包时无法找到JDBC驱动程序

时间:2016-10-18 16:02:21

标签: java mysql maven jdbc jar

我有一个非常简单的独立命令行Java应用程序。使用maven-assembly-plugin我创建了一个包含所有依赖项的可执行胖jar,包括MySQL驱动程序jar。我打开了jar来验证确实包含了类。

通常,此作业应该运行(以root身份通过incrond)以响应文件上传到我们的SFTP站点以导入上载的数据。但是当它以这种方式运行时,在日志中我看到错误" java.sql.SQLException:找不到合适的驱动程序"。但是,如果我使用相同的参数直接以root身份运行应用程序,它可以正常工作。在这两种情况下都使用相同的java(/ usr / bin / java)。也适用于以我的用户身份运行的本地开发机器。

我确实搜索过类似的问题,但是我发现的大部分内容都是由于错过了将驱动程序添加到胖罐中,正如我所提到的,我验证的不是这里的情况。

更新:已修复。这个问题实际上与jar文件的构建无关。实际原因是,当直接在bash中运行时,由于特殊字符,我需要在连接字符串和密码参数周围添加单引号作为cli选项。所以我在设置incrond conf文件时做了同样的事情。原来incrond会将引号作为值的一部分传递。经过几天的斗争并最终在这里发布后,我几乎立即发现了真正的问题。

0 个答案:

没有答案