idea启动正常,打成jar包时,启动报错

背景

自己写了个小程序,在idea中启动正常,达成jar包发布时,启动报错。

Caused by: java.sql.SQLException: unknown jdbc driver :

at com.alibaba.druid.util.JdbcUtils.getDriverClassName(JdbcUtils.java:517)

at com.alibaba.druid.pool.DruidDataSource.resolveDriver(DruidDataSource.java:1203)

at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:887)

at com.alibaba.druid.pool.CoreDruidDataSource.init(CoreDruidDataSource.java:71)

... 152 common frames omitted

其实和报错本身没有关系,被报错误导,检查了半天jar包内容和maven的打包命令,结果是jar包启动命令的问题。

原因

我的启动命令如下:

shell 复制代码
java -jar .\zcm-docreader.jar -DCONFIG_HOME=D:\workspace\myapp\CONFIG_HOME 

如上所示,我将配置文件外挂,并通过环境变量来告诉应用外挂的配置文件目录。

然而java -jar启动命令中,参数不能放在jar包后面,或者说jar包路径要放在命令的最后面,否则命令读到了jar包路径后,后面的内容将会被忽略。

因为这个原因,导致我的应用没有读到配置文件,从而一直报驱动不存在。实属误导。

解决方案

将jar包路径放在命令的最后面。

如下:

shell 复制代码
java -jar -DCONFIG_HOME=D:\workspace\myapp\CONFIG_HOME .\zcm-docreader.jar

因为jar包路径后面的内容会被忽略,从而导致出现其他问题,这边记录一下,希望能帮到其他踩坑的人。

相关推荐
zzzzzz31010 天前
当产品经理说这个很简单:我用Python自动化处理奇葩需求的实战指南
python·pycharm·产品经理
摇滚侠17 天前
IDEA 创建 Java 项目 手动整合 SSM 框架
java·ide·intellij-idea
摇滚侠17 天前
SpringMVC 入门到实战 RESTFul 49-55
java·开发语言·后端·spring·intellij-idea·restful
你是个什么橙17 天前
Python入门学习1:安装配置开发环境——Python或Annaconda,Pycharm
python·学习·pycharm
代码雕刻家17 天前
1.24.MySQL-idea中连接MySQL的基本操作
数据库·mysql·intellij-idea
星月IWJ17 天前
idea 工具整理
java·spring boot·intellij-idea
终将老去的穷苦程序员17 天前
IntelliJ IDEA 的安装教程
java·ide·intellij-idea
m沐沐17 天前
【计算机视觉】OpenCV 模板匹配银行卡数字识别---下
人工智能·python·opencv·计算机视觉·pycharm·numpy
承渊政道17 天前
飞算JavaAI 智能引导背后的多 Agent 协作机制解析:从老旧 Java 后台升级到可运行工程
java·开发语言·spring boot·安全·intellij-idea·软件工程·ai编程
lazy H18 天前
Spring Boot 项目如何连接 Redis?新手入门配置和常见错误总结
ide·spring boot·redis·后端·学习·intellij-idea