`
cantellow
  • 浏览: 847366 次
  • 性别: Icon_minigender_1
  • 来自: 草帽海贼团
社区版块
存档分类
最新评论

Eclipse下jar包版本不一致等常见问题

    博客分类:
  • Java
阅读更多


我借这个平台简单说说Eclipse下配置环境需要注意的几点,大多数情况下,我们遇到最多的根源就是jar包的版本不一致,比如我调用某个类的方法,这个方法在旧版本其实不存在的,这时候编译不会通过,这种情况还是好的,至少它明确告诉你哪个类存在问题,进而我们可以找到这个类所属的jar包。最要命的是程序运行时出现这种情况,那你肯定会问为什么编译的时候能通过,想一下远程调用,客户端是怎么调用服务器端的对象的,对象时怎么传输的,这一切都可能用到序列化,对于序列化来说,每个类都有一个版本,何止是jar包,当java从硬盘还原为一个对象时,你除了保证这个类的定义在客户端和服务端都存在,而且还要保证它们的版本都要一致,这种问题编译时期是检查不出来的。

除了jar包版本的问题,还有一类的问题也比较常见,那就是工程和jar包引用的顺序,Eclipse通过classpath来定义类的引用关系,通常,我们用的最多的是源代码,源码工程,jar包,它们的顺序很重要,这也是导致jar包版本不一致的一个原因,想象一下,目的工程依赖A工程和B jar包,同时A工程也依赖B jar包,当然也引用了它,那么目的工程到底去寻找直接引用的B jar包呢还是引用A工程依赖的jar包?这三者之间的顺序有关系,我不建议你凭感觉行事,最有效的办法就是设置在B jar包的入口处设置一个断点,看它到底依赖的是哪个jar包。

很多工程都有配置文件,拿我们公司的来说,客户端有启动顺序xml配置文件,服务器端有服务器服务xml配置文件,有没有想过再Eclipse环境下是按什么方式找这些配置文件的,它查找目录的顺序又是怎样的?如果这些配置定义重复了会不会有问题?我就遇到过这样一种情况,A客户端定义了一份启动配置文件xml,平台客户端定义了一份启动配置文件xml,A客户端依赖平台客户端,最后它找到了两份启动配置文件xml,每一个task任务都重复加了一次,导致客户端启动出现问题。

说了上面三点我们经常遇到的问题根源,那么我再说说解决jar包版本问题不一直的最佳途径,首先,你要对哪些工程依赖哪些包,而这些包又是干什么的要熟悉,然后,将这些jar包都整理成一个版本统一放在一个文件夹下,然后将Eclipsewokespace下工程依赖的jar包都指向这个文件夹下,保证整个wokespace下面用到的jar包都是同一个jar。然后,建立工程,最重要的一点是,整个过程保持头脑十分清晰,不要犯低级错误,否则你会疲于奔命,而且,你做的每一个操作你必须要给出足够的理由。第一阶段是编译器通过,保证不会出现编译错误,第二阶段就是程序运行正常,这一阶段通常都是程序启动时会遇到很多问题,这种问题最霸道的解决办法就是深入代码!不要觉得这是一个小问题,深入代码可能会浪费你很多时间,你错了,如果你不深入代码,仅仅凭感觉操作的话,你会浪费十倍的时间!

5
52
分享到:
评论
3 楼 古叶斋 2012-07-04  
多谢,解决了困惑我的一个问题。
2 楼 cantellow 2011-01-05  
有时候被踩也是一种顿悟。
终于知道这个为什么被踩这么多次了,原来我是一只井底之蛙。
1 楼 huangheyuan1229 2010-09-16  
刚进入软件开发这个行业不久,这些可能还不太了解,但以后一定用得到,来这里支持下楼主多出好文

相关推荐

    Eclipse常见jar包

    要将MySQLjar包引入Eclipse项目,你需要下载最新版本的`mysql-connector-java.jar`,这可以在MySQL官方网站的下载页面找到。下载后,将其复制到Eclipse项目的`lib`目录下,然后右键点击项目,选择“Build Path” -> ...

    eclipse链接hbase所需jar包,hbase版本1.2.6,Hadoop版本2.7.1

    同时,确保你的HBase和Hadoop集群版本与开发环境中使用的jar包版本一致,以避免版本不兼容的问题。通过正确配置和使用这些jar包,你将能够在Eclipse中顺利地与HBase进行交互,进行数据读写、表管理等操作。

    帆软报表使用jar包

    此外,及时关注软件更新,保持jar包版本的最新,可以确保利用到最新的功能并修复已知的问题。 总的来说,"帆软报表使用jar包"涉及到的关键知识点包括Java项目的库管理、jar包的引入方式、版本选择策略以及如何使用...

    Eclipse使用RecyclerView使用的jar包

    更新所有库到最新版本,或者确保v4和v7库的版本一致,通常能解决问题。 - **错误的构建顺序**:在Eclipse中,项目的构建顺序可能会影响依赖的解析。确保你的项目依赖顺序正确,一般把依赖库放在主项目之前。 - **...

    eclipse中Jar 文件的创建与使用

    使用创建好的Jar文件有以下几种常见方式: 1. **通过命令行运行**:如果你的Jar文件包含主类并且可以独立运行,可以在命令行中使用`java -jar jarfilename.jar`来启动。 2. **在Eclipse中运行**:在Eclipse中,...

    mysql8的驱动jar包

    2. **命令行运行**:如果你在命令行下运行Java程序,可以使用`-cp`或`-classpath`参数指定jar包的位置。 3. **MANIFEST.MF**:如果使用的是Java的可执行jar文件,可以在`META-INF/MANIFEST.MF`文件中添加`Class-Path...

    连接mysql数据库的jar包(多个版本)

    - **添加依赖**:在Java项目中,通常将`mysql-connector-java`的jar包添加到项目的类路径(classpath)中,这可以通过IDE(如Eclipse、IntelliJ IDEA)的设置完成,或者在构建脚本(如Maven的pom.xml或Gradle的...

    常见的jar包说明

    通过AOP,开发者可以在不修改业务逻辑代码的情况下添加横切关注点,如日志记录、事务管理等。 ### 6. atomikos-util.jar Atomikos是一个高性能的分布式事务管理库,该jar包提供了基础的工具和功能,支持多资源管理...

    slave4j的eclipse插件(文档+jar包)

    对于slave4j,用户需要将提供的jar包导入到Eclipse的插件目录中,或者通过Eclipse的插件管理器进行在线安装。安装完成后,用户可以在Eclipse的代码生成向导中找到slave4j相关的选项,选择需要自动生成的代码类型,并...

    ssm 开发必要的 完整的 jar包

    这个"ssm 开发必要的 完整的 jar包"集合,显然是为了方便开发者一站式获取所有必要的库,避免在配置项目时因缺少jar包而遇到问题。下面将详细介绍SSM框架的组成部分及其相关的jar包。 1. **Spring框架**:Spring是...

    eclips打包成jar

    - 在Eclipse中,需要手动编辑deployed文件夹外的JAD文件,添加MIDlet信息,包括MIDlet名称、版本等。 - 在MIDlets部分添加MIDlet类路径,确保与项目中的实际类匹配。 - 配置deployed文件夹中的JAD文件以保持一致...

    安装lombok所用到的Jar包.zip

    - 如果你的Eclipse有多个版本,确保将jar文件放在对应版本的目录下。 - 启动Eclipse,如果Eclipse自动检测到新插件,会提示你重启以完成安装。如果没有,手动重启Eclipse。 4. **配置Eclipse**:安装完成后,需要...

    完美解决SmartUpload上传中文乱码的jar包

    需要注意的是,虽然这个jar包可以解决SmartUpload的中文乱码问题,但在实际开发中,我们还需要考虑其他可能的编码问题,比如数据库存储、文件系统的编码设置等。确保整个系统的一致性是防止乱码问题的关键。 总结来...

    java生成X509证书jar包

    `lib`目录可能包含了Bouncy Castle等依赖库的JAR文件,`META-INF`目录则包含MANIFEST.MF文件,记录了jar包的元数据,如主类、版本信息等。 使用这个jar包时,只需将它加入到项目依赖中,然后调用`RcertUtil`提供的...

    常用jar包大全

    - 在Java项目中,JAR包可以通过`<classpath>`元素添加到构建路径中,或者通过IDE如Eclipse、IntelliJ IDEA的设置来引入。 - 运行Java应用程序时,可以使用`-cp`或`-classpath`选项指定包含JAR的路径。 - 通过`...

    sqlserver2005 JDBC驱动程序JAR包

    **SQLServer2005 JDBC驱动程序JAR包详解** SQLServer2005 JDBC驱动程序是用于在Java应用程序中连接到Microsoft SQL Server 2005数据库的关键组件。JDBC(Java Database Connectivity)是一种Java API,允许Java...

    hadoop源码的第三方jar包

    在开发和研究Hadoop项目时,常常...在Eclipse这样的集成开发环境中,将这些jar包添加到构建路径,可以确保编译和运行时对依赖库的正确引用。同时,理解和掌握这些库的用途,对于深入学习Hadoop及其生态系统至关重要。

    eclipse-svn插件jar

    将这两个目录下的jar文件复制到Eclipse的相应目录下(通常在`eclipse/plugins`和`eclipse/features`),然后重启Eclipse,插件即可生效。 6. **使用方法**:安装完成后,Eclipse的“资源”视图中会出现一个“Team”...

    SSM整合JAR包

    AOP允许开发者定义“切面”,在不修改原有代码的情况下,为方法添加额外的功能,如日志记录、事务管理等。 **2. SpringMVC** SpringMVC是Spring框架的一部分,专用于构建Web应用程序。它采用模型-视图-控制器(MVC...

    java mysql jar包

    将此文件放入你的项目类路径下,或者如果你使用的是IDE如Eclipse或IntelliJ IDEA,可以将JAR添加到项目的库依赖中。 2. **JDBC连接**:在Java中,我们使用Java Database Connectivity (JDBC) API来与数据库进行通信...

Global site tag (gtag.js) - Google Analytics