maven打jar包,用doc命令执行jar遇到的各种问题(记录备忘)
2017-08-16 10:34
441 查看
事件起因:
公司有个业务需求,两个系统搞对接,双方采用中间库的方式进行数据交互,设立了中间表,对方采用的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了,后面的文章会继续介绍,现在记录备忘,希望会对大家有所帮助!
公司有个业务需求,两个系统搞对接,双方采用中间库的方式进行数据交互,设立了中间表,对方采用的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了,后面的文章会继续介绍,现在记录备忘,希望会对大家有所帮助!
相关文章推荐
- 初使用maven遇到各种问题记录
- 记录一次maven安装无法正常在dos窗口执行mvn的问题
- 使用maven命令打spring boot可执行jar包
- 解决idea中执行maven命令失败的问题
- 项目实现过程中遇到的问题记录(一)------------使用AsyncTask时,doInBackground没有立即执行
- CentOS 2.6.32内核升级遇到问题记录以备忘
- 日常遇到的各种中文乱码问题(不断更新以备忘)
- maven构建项目自动部署到tomcat中遇到的各种sb问题总结
- [项目过程中所遇到的各种问题记录]ORM篇——使用NHibernate配置对象实体的一些小问题
- 【Maven问题】应用Maven构建项目遇到的各种问题总结
- 执行mount命令时遇到的问题
- 使用eclipse执行maven-release-plugin插件发布jar异常问题(.project)(Cannot prepare the release because you have local modifications )
- Java执行Shell遇到的各种问题
- [项目过程中所遇到的各种问题记录]ORM篇——使用NHibernate配置对象实体的一些小问题 22
- maven构建项目自动部署到tomcat中遇到的各种sb问题总结
- 记录一下这几天eclipse建立maven工程遇到的问题
- 记录一次安装Loadrunner11遇到的各种问题,如PUTTY.GID找不到
- maven插件tomcat7:run执行时遇到了一个问题
- [项目过程中所遇到的各种问题记录]编辑器篇——FCKeditor自定义上传路径配置