最近开发一个高德地图项目,使用的框架是mybatis+spring,打成jar包运行的方式,但是在eclipse中正在运行,却在打成jar包后无法运行,错误信息如下

C:\Users\Administrator\Desktop\collectiongaode>java -Dcollectiongaode.dir=C:\Users\Administrator\Desktop\collectiongaode -jar C:\Users\Administrator\D
esktop\collectiongaode/lib/gaode.jar
2017-04-20 10:10:52.269, [main     ], [INFO ], AbstractApplicationContext.(510), | Refreshing org.springframework.context.support.FileSystemXmlApplica
tionContext@14387bc2: startup date [Thu Apr 20 10:10:52 CST 2017]; root of context hierarchy
2017-04-20 10:10:52.312, [main     ], [INFO ], XmlBeanDefinitionReader.(315), | Loading XML bean definitions from URL [file:C:/Users/Administrator/Des
ktop/collectiongaode/conf/applicationContext.xml]
Exception in thread "main" java.lang.ExceptionInInitializerErrorat com.panso.CollectionGaode.service.impl.ReadFileServiceImpl.<init>(ReadFileServiceImpl.java:27)at com.panso.CollectionGaode.main.CollectionMain.main(CollectionMain.java:28)
Caused by: org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler f
or XML schema namespace [http://www.springframework.org/schema/tx]
Offending resource: URL [file:C:/Users/Administrator/Desktop/collectiongaode/conf/applicationContext.xml]at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68)at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:85)at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:80)at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.error(BeanDefinitionParserDelegate.java:318)at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1435)at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1428)at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:185
)at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.jav
a:139)at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:
108)at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493)at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174)at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209)at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:243)at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:127)at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:93)at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130
)at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:537)at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:451)at org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:140)at org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:84)at com.panso.CollectionGaode.utils.ApplicationContextFactory.<clinit>(ApplicationContextFactory.java:11)... 2 more

最主要的而是这句报错

Unable to locate Spring NamespaceHandler f
or XML schema namespace [http://www.springframework.org/schema/tx]

找了很多资料,有的说是jar包没有,有的说是META-INF/spring.schemas 文件的问题。

后来在打jar包的时候发现,Runnable jar 有三种方式

Extract required libraires into generated JAR

Package required libraies into generated JAR

Copy required libraries into a sub-folder next to the generated JAR

我一开始使用的是第一种方式,再尝试第二种方式,就不报错了。

整理了下三种方式jar包的文件夹结构

extract 方式 依赖的jar包都变成了class文件

package方式 把依赖的jar包放在根目录下

copy方式,依赖jar包放在单独一个文件夹里面

Eclipse 打jar三种不同方式的区别相关推荐

  1. Tomcat介绍及三种启动方式的区别

    一.Tomcat的下载 二.Tomcat目录说明 三.Tomcat常用命令 四.Tomcat服务的安装 五.Tomcat启动的三种方式 六.三种启动方式的区别 七.Tomcat端口占用问题 一.Tom ...

  2. JS标签的获取、js curd、事件的四要素、事件的三种注册方式和区别

    1.掌握html和body标签的两种特殊获取方式(*****)---(重点)         html: document.documentElement body: document.body le ...

  3. 关于微软COEM,FPP和开放式许可三种购买方式的区别

    什么是零售版.VOL版和OEM版 零售版是指从软件零售商处购买到的软件产品,它是针对一般家庭用户并且也是最常见的销售版本. Windows Vista零售版分为彩盒包装和COEM简装版,彩盒包装比CO ...

  4. GPS接收机热启动、温启动、冷启动三种启动方式的区别

    众所周知GPS接收机定位的时候,需要两种基本信息,一种卫星星历和卫星的观测数据(伪距.载波相位.测距码).定位的条件星历和卫星的观测数据,缺一不可. 卫星星历是用来描述卫星轨道的参数,用这些参数可以计 ...

  5. robotstudio仿真搬运编程_敲黑板 | 机器人是怎么完成任务的?这三种编程方式的区别你造吗...

    9012年了,机器人对我们来说已经很熟悉.在许多领域,它都发挥着卓有成效的作用,那么,这些机器人究竟是怎么在各个领域完成任务的呢? 想知道这个问题的答案,我们首先要知道机器人编程. 机器人编程[rob ...

  6. 机器人焊枪动作与编程实验_敲黑板 | 机器人是怎么完成任务的?这三种编程方式的区别你造吗...

    9012年了,机器人对我们来说已经很熟悉.在许多领域,它都发挥着卓有成效的作用,那么,这些机器人究竟是怎么在各个领域完成任务的呢? 想知道这个问题的答案,我们首先要知道机器人编程. 机器人编程[rob ...

  7. Java数组—三种创建方式与区别

    Java创建数组有三种方式 1. 第一种方式 int arr [ ]  = new int [5] ; 属于动态创建,声明并创建内存空间,等待赋值. //创建数组的第一种方式 //属于动态创建,声明并 ...

  8. 多线程 三种创建方式及区别

    线程概念 进程:启动一个程序就是一个进程. 线程:在一个程序里面,多个事情同步进行,这个事情是由线程来完成 不使用多线程的效果 如果我们不使用线程,会怎么样呢?看下面代码 新建立一个hero类包含英雄 ...

  9. 【转】EF三种编程方式的区别Database first ,Model first ,code first

    首先对于EF中先出现的datebase  first和model first两种编程方式,其的区别根据字面意思很容易能够理解. datebase  first就是代表数据库优先,那么前提就是先创建数据 ...

最新文章

  1. iOS 网络状态判断方案(支持iOS11和iPhoneX)
  2. 【C#】允许泛型方法T返回空值Null
  3. php计算经纬度间的距离
  4. yum 简介及其常用命令
  5. (文末有福利)口罩检测覆盖公有云、私有化及SDK等形态,拿来即用精准高效
  6. 奋斗的小蜗牛+竹青遍野 同类题
  7. Linux(Redhat5.5)配置时间服务器(Ntp)法
  8. java实现数据库内容修改_数据库更改到Java环境中实现可持续和平
  9. 手机屏幕适配原理及实现
  10. OAuth2.0_授权服务配置_Spring Security OAuth2.0认证授权---springcloud工作笔记140
  11. 油田生产中的几个“三”
  12. NFS rhel 7
  13. (转)来自瑞士的七个葫芦娃:各怀绝技的Wealthtech解决方案商
  14. 报错:When executing step qmake
  15. Mac通过brew安装Nodejs错误:Could not symlink lib/dtrace/node.d
  16. Python数据导入
  17. android集成科大讯飞语音听写和语音合成
  18. 【电子】Baseband Signal and Passband Signal
  19. map和multimap的用法详解
  20. firefox省流量攻略

热门文章

  1. win8经典开始菜单计算机,Win8系统设置开启经典开始菜单的诀窍
  2. 数据库课程设计测试部分_实用的数据库设计,第1部分
  3. 服务器管理器怎么用?
  4. python Pyqt5 QLabel控件 自定义添加鼠标单击信号/事件 双击信号/事件
  5. hp计算机如何进入启动界面,惠普电脑怎么进入bios设置启动项
  6. 强化学习笔记(六):Policy Gradient/策略梯度
  7. (一)初识DDD(领域驱动设计)
  8. 踏遍青山情未老 —— 九山顶重游记(五)
  9. GIS数据处理-栅格切片工具
  10. Khalid bin Abdul Aziz bin Ayyaf王子宣布第33届Al Janadria节将于周四启幕