maven打jar包,用doc命令执行jar遇到的各种问题(记录备忘)

事件起因:

公司有个业务需求,两个系统搞对接,双方采用中间库的方式进行数据交互,设立了中间表,对方采用的oracle,我方采用的sqlserver,我负责写个程序定时从oracle的中间表中读取数据写入到公司的sqlserver中,我采用spring+mybatis+quartz+atomikos框架完成了一个配置多数据源定时从oracle读取数据到sqlserver的项目,该项目没有页面,最初的版本是tomcat启动本程序,但是由于领导要求程序不在tomcat下运行,要求把项目改成exe类型不需要任何环境安装直接点击可运行!

最先听到这个需求的时候有点蒙,之前没怎么用java写桌面程序,后来看了网上的资料,知道要想把项目打成可执行jar包,再来通过exe4j转成exe,知道怎么做之后,我就开始对我的maven项目进行打jar包,然后通过doc命令执行jar包进行测试,结果就遇到了各种问题:

问题一:

maven项目打jar包后,没有指定mian函数入口,spring的项目脱离tomcat启动可以通过spring的上下文来获取实例调用方法,

ApplicationContext context = new ClassPathXmlApplicationContext("spring-mybatis.xml");  
Scheduler scheduler = (Scheduler) context.getBean("testSchedulerFactoryBean");

我们要写一个含有main方法的类来启动spring容器,写好后在maven打包的插件中指定main函数入口,在mainClass中填入类全名


     问题二:

maven项目打jar包后,把mapper层的xml给漏掉了,导致启动的时候映射mapper实例失败




这里我们打包的时候要把xml文件打包完全,要在pom.xml中加入




问题三:maven打jar包后,外部引用的jar包没打进去,由于我在外部引入的oracle和sqlserver的数据库驱动jar包,导致maven打包的时候没有包这两个jar包包含进去


解决办法:由于时间仓促,我采用了比较粗暴的方法,直接把这两个jar包拷贝到maven打包后的lib包下面去了,



但是启动的时候还是报错,说找不到class类文件,这里我忽略了一个问题maven打包后会有一个MANIFEST.MF的文件,里面有各种配置信息,jar启动的时候就是读里面的配置信息来启动的,



classPath里面要把外部的jar包路劲信息加进去,不然jar启动的时候就读不到驱动,就会失败


加入之后启动jar包



千辛万苦终于启动了,至此maven项目通过jar包启动任务来动态读写数据库操作就成功了,接下来就是用exe4j来把jar包转exe了,后面的文章会继续介绍,现在记录备忘,希望会对大家有所帮助!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值