当前位置: 首页 > news >正文

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包启动命令的问题。

原因

我的启动命令如下:

java -jar .\zcm-docreader.jar -DCONFIG_HOME=D:\workspace\myapp\CONFIG_HOME 

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

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

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

解决方案

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

java -jar -DCONFIG_HOME=D:\workspace\myapp\CONFIG_HOME .\zcm-docreader.jar

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

http://www.lryc.cn/news/138661.html

相关文章:

  • 软考高级系统架构设计师系列论文八十九:论软件需求分析方法和工具的选用
  • java八股文面试[JVM]——类加载器
  • CSS中如何实现元素之间的间距(Margin)合并效果?
  • 【实操干货】如何开始用Qt Widgets编程?(三)
  • 基于深度学习的图像风格迁移发展总结
  • 小程序页面间有哪些传递数据的方法?
  • bh002- Blazor hybrid / Maui 保存设置快速教程
  • 同源政策与CORS
  • 科技资讯|三星再申请智能戒指商标,智能穿戴进入更小型化发展
  • HarmonyOS开发第一步,熟知开发工具DevEco Studio
  • 【应急响应】Linux常用基础命令
  • 什么是Pytorch?
  • Baidu World 2023,定了!
  • ProxySQL+MGR高可用搭建
  • 【Unity小技巧】在Unity中实现类似书的功能(附git源码)
  • STM32设置为I2C从机模式(HAL库版本)
  • 牛客网Verilog刷题 | 入门特别版本
  • ROS通信机制之话题(Topics)的发布与订阅以及自定义消息的实现
  • 容灾设备系统组成,容灾备份系统组成包括哪些
  • 腾讯云服务器租用价格表_一年、1个月和1小时报价明细
  • 【java安全】JNDI注入概述
  • 零基础如何使用IDEA启动前后端分离中的前端项目(Vue)?
  • laravel实现AMQP(rabbitmq)生产者以及消费者
  • LeetCode——二叉树篇(九)
  • uniapp scroll-view横向滚动无效,scroll-view子元素flex布局不生效
  • 无涯教程-进程 - 简介
  • HTML番外篇(四)-HTML5新增元素-CSS常见函数-理解浏览器前缀-BFC
  • 机器学习之Adam(Adaptive Moment Estimation)自适应学习率
  • 深入理解Linux权限管理:保护系统安全的重要措施
  • kafka复习:(20):消费者拦截器的使用