MyEclipse中jar包的相关问题
来源:互联网 发布:rar解压密码破解软件 编辑:程序博客网 时间:2024/04/28 21:30
在用MyEclipse做企业级开发的过程中,我们经常会接触很多jar包,主要包括以下几类:一是应用服务器上的jar包,二是项目所需jar包,三是开发环境所需jar包。很明显可以看出jar包是如此重要,以至于没有它们,我们很难运用封装/模块化/复用等.
为此,我们有必要对项目开发中涉及到的jar包引入/管理操作作一个比较全面的了解,为进一步提高开发效率做好铺垫.
一.jar包导入方式
A.直接用MyEclipse里自带的相关的项目jar包,右击项目“MyEclipse”菜单,选择对应的jar包就OK了,例如“Add Hibernate Capabilities”,并且可以设置Hibernate的一些配置信息,不错的可视化操作;
B.添加外部的jar包到web项目的lib包下,右击项目“Properties”-->“Java Build Path”-->“Libraries”选项卡;
C.自己手动拷贝jar文件到项目的lib包下,具体操作只要把要添加的jar文件拷贝到MyEclipse中的workspace下的lib包里就好了;
以上三种方式导入jar包都可以,但是怎么抉择呢?对于方式1, jar文件直接链接到MyEclipse的文件下,并没有拷贝到WEB-INF/lib目录下,不得用项目的发布、移植,可能会出现jar找不到的情形;方式2同样有这个缺点;方式3直接添加到WEB-INF/lib目录下,移植性强,可操作性也强。建议使用第三种方式,个人偏好而已.
二.jar包显示隐藏方式
不同的开发人员,都有着他固有的开发习惯,有的人就觉得把jar包显示在开发视图里太碍眼,看起来不舒服,复杂。而有些人就想研究看看到底导了哪些jar包,运用了哪些技术并且通过点击jar包里的class文件直接查看源码(假设先前有导入源码)。所以呢,这里就牵涉到了一个jar包的显示与隐藏问题了:在Package Explorer这个窗体中,右上角有个下拉小三角,点击-->“Filters”-->“Name filter patterns(matching names will be hidden)”,在这一选项下填有*.jar,勾上复选框即表示这一类的文件不显示,多个类型之间可用“,”分隔。
三.去除MyEclipse中jar包关联性警告
我们在开发过程中会接触到两种环境,一是开发环境(对应eclipse中的类路径),二是运行环境(对应应用服务器中的类路径)。这时两个环境中jar包的关系就比较复杂了。这时处理jar包间的关系的总体原则是要保持这两个环境中jar包的版本一致或者兼容。
在项目WEB-INF\lib目录中的jar包是两个环境中共用的部分。这部分jar包要求不能和两个环境中的jar包有冲突,也就是说lib目录下的jar包是和两个环境中的jar包互补的。而两个环境中的jar包原则上应该是相同的或者兼容的。
例如在MyEclipse下开发javaEE项目,我们会用到javaEE相关的jar包javaEE.jar,这时的需求是开发环境的需求。但在应用服务器环境中就不需要这个jar,因为应用服务器中会有相关的javaEE的jar包。这时如果我们将项目发布到应用服务器环境中,就会发生jar包冲突的情况。可是我们在开发时还要用这个包,发布时还不能发布到应用服务器中,这怎么办呢?解决的办法如下:
在eclipse中加入这个jar包(这个jar包当然不在项目目录中了),eclipse会提示:
Classpath entry XXX.jar will not be exported or published. Runtime ClassNotFoundExceptions may result.
Classpath entry XXX.jar will not be exported or published. Runtime ClassNotFoundExceptions may result.
因为我们这时候确认这个jar包是不需要部署到应用服务器环境中的(如果需要就直接放到lib目录下就可以了,就不用费这个事了),所以我们做如下操作,解除eclipse这种依赖关系的提示:
点中提示信息-->右键-->Quick fix->exclude the associated raw classpath entry from the set of potential publish/export dependencies-->finish.
点中提示信息-->右键-->Quick fix->exclude the associated raw classpath entry from the set of potential publish/export dependencies-->finish.
这样就解除了,jar包的依赖,发布的时候就不会在项目中出现这个jar包了。
其次是关于SSH整合jar包冲突的问题。例如:在使用Spring的AOP编程时,会用到这几个lib:asm- 2.2.2.jar asm-commons-2.2.2.jar asm-util-2.2.2.jar如果使用Hibernate会用到这几个lib:asm.jar asm-attrs.jar其中asm-2.2.2.jar与asm.jar存在类上的冲突,使用其中之一或两者都使用,可能会出现如下错误:
java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor
java.lang.NoClassDefFoundError: org/objectweb/asm/commons/EmptyVisitor
java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit
解决办法是:
1.去掉类路径上的关于Hibernate的3个lib
asm.jar asm-attrs.jar cglib-2.1.3.jar
2.加入Spring中的以下4个lib
asm-2.2.2.jar asm-commons-2.2.2.jar asm-util-2.2.2.jar cglib-nodep-2.1_3.jar
在SSH框架构建时,按这个顺序来加Struts--Spring--Hibernate,有重复包的时候不要替换就一般可以减少这类冲突。
原文地址:http://blog.sina.com.cn/s/blog_615c388d0100kjze.html
- MyEclipse中jar包的相关问题
- myeclipse中添加spring相关jar包
- MyEclipse中jar包的源代码
- myeclipse 中导入jar包的方法
- myeclipse 中查看jar包的源码
- MyEclipse添加jar包问题
- hadoop jar运行hbase相关jar包的classpath问题
- jar包查找相关问题
- MYEclipse 对核心包tr.jar访问受限的问题
- 在 MyEclipse 中删除引用JAR包的正确方法
- Myeclipse中怎样隐藏碍眼的jar包
- Myeclipse中如何查看jar包的源码
- maven解决打war包时同时打jar包,根据不同的环境打包,用myeclipse同步到tomcat时的相关问题
- MyEclipse 9.1 自导jar包构建SSH中jar包的删减
- myeclipse中关联jar包源代码 --支持自带jar包源代码的关联
- myeclipse中web项目导入jar包后启动Tomcat提示缺少jar包的解决方法
- Eclipse中Jar包导出的问题
- Java中JDK中path和classpath的设置相关问题(关于import自定义包和jar的问题)
- jsp到mysql不能存入中文
- tomcat启动发生 java.lang.NoClassDefFoundError:javax/el/ExpressionFactory错误
- 解析Apache配置文件
- Flex学习笔记_05 使用组件处理数据和交互_01常用组件
- Caused by: java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool
- MyEclipse中jar包的相关问题
- android 中stk学习
- 观察者模式
- jquery attr()方法
- 跨浏览器的CSS固定定位{position:fixed}
- [施工中]CentOS5.7 安装 FFMPEG转码MP4
- 14.3.1 表示仿真的世界
- Android自动判定输入的是电话号码还是网址
- Uname