今天在做项目的时候遇到了一个很有意思的问题,折磨了我很长时间,不过最终还是解决了,特留此文纪念一下。

遇到的问题:
同样一段代码,在同事那就好使,在我这就找不到一个方法。引用的包也都是相同的,这种问题还是第一次遇到,怎么办呢?
找啊找啊找原因,查看引用的包,才发现我所引用的包名和同事引用的包名是相同的,不同的是我两引用的包不是一个jar。也就是说不同的jar里包含了相同的包名和类名。
问题的原因找到了,那怎么解决呢?怎么指定调用自己需要的jar中的包呢?

要解决这个问题,还得先了解jvm加载的方法。jvm在加载包的时候,是从classpath的路径从上往下找,找到第一个后就将其引用。

包名类名都相同,那jvm没法区分了,一般ide是会提示发生冲突而报错的,如果不报错的,那就只有第一个包被引入(在classpath路径下排在前面的包),第二个包会在classloader加载类时判断重复而忽略。

知道了jvm加载包的方法,那么解决问题就很容易了,只需要将需要引用包的jar放在前边就可以了,也就是说放在classpath路径的上边。

转载于:https://www.cnblogs.com/6tian/p/4177920.html

不同的jar里边相同的包名类名怎么区别导入相关推荐

  1. Jar/War/Ear等包的作用与区别详解

    Jar/War/Ear等包的作用与区别详解 以客户角度来看,jar文件就是一种封装格式,用户不需要知道jar包中有多少个.class格式的文件及每个文件中的功能与作用,也可以得到相应的访问的结果.ja ...

  2. idea 快捷键获取类的全限定类名(包名+类名)

    什么是全限定类名:就是 包名+类名 1:选中一个类名,然后右键 Copy  Reference 2:点击paste without Formatting 3:查看结果

  3. 报错解决No implementation found for int包名+类名+方法名

    引言:今天在导入sdk测试接口的时候遇到问题,在网上找了很多的答案,试了很多遍,最后终于解决了,总结来说就是so文件里面的路径要和aar里面的jni接口的包名一致. 节约时间请直接看最后一张图 No ...

  4. java 获取包名类名_获取指定包名下的所有类的类名(全名)

    参考来源: 以下代码一键运行: package test; import java.io.File; import java.io.IOException; import java.net.JarUR ...

  5. 简而不漏,300字Java标识符命名规则规范,看一遍就可以记住,包名类名变量名常量名,让命名有迹可循

    1.标识符命名规则 (如果不遵循,编译不通过,需要严格遵守) 由26个英文字母大小写,0-9,_,$组成 不可以数字开头 不可使用关键字和保留字,可以包含关键字和保留字 严格区分大小写 不能包含空格 ...

  6. Python的包(package)和模块(module)的区别,如何导入python包和模块,以及为什么可以把包名当作一个模块导入

    本文主要讨论标题中的三大问题,接下来逐一分析: 文章大部分内容转载并重新整理自https://zhuanlan.zhihu.com/p/33913131 1. Python的包(package)和模块 ...

  7. 【Android 应用开发】Android 工程修改包名流程 ( 修改 applicationId | 修改 package | 修改 R 资源引用 | 修改 BuildConfig 引用 )

    文章目录 一. Android 工程修改包名流程 二. 修改 applicationId 三. 修改 package 包名 四. AndroidManifest.xml 清单文件组件 五. 修改 R ...

  8. 快速获取Android应用包名和Activity名

    一.获取包名 方法1: 先说明一下这里讲的方法是通用的,而网上其他方法获取PackageName不通用(因为他是建立在root的基础上的,我不敢保证你的设备已经root). ①在android设备上点 ...

  9. 【Android开发】 获取手机上的各种apk的包名和类名,实现跳转到其他应用

    应用装在手机上 情况一:使用Android 调试桥 (adb) 使用数据线连接电脑,并打开 USB 调试,找到你的Android-SDK所在 如我的:"D:\Android\Sdk\plat ...

最新文章

  1. JDK的安装与系统环境变量的配置
  2. 关于 Ruby Ruby on Rails 的一些书及论坛网站
  3. js中match、replace方法中使用正则表达式
  4. MarkDown之typora
  5. jzoj4273-圣章-精灵使的魔法语【线段树】
  6. 基于 HTML5 WebGL 的民航客机飞行监控系统
  7. export配置linux环境变量
  8. SSO (单点登录)实现方式
  9. mysql怎么获得权限_mysql怎么给用户加权限
  10. html 源码_(带手机版数据同步)中国风古典园林石业织梦模板 水墨风格园林艺术网站源码下载...
  11. 浅析单调递增子序列问题(LIS)
  12. 暴风影音II升级进程stormliv.exe持续不停的调用WSPSelect()函数,它想干啥?
  13. MP3、MP4、MP5、PSP
  14. 80套基于PHP+MYSQL 的毕设设计(系统+论文)
  15. 辉凌医药和维健医药就可利新达成战略合作
  16. 支付宝微信QQ钱包收款码合并教程及源码下载
  17. Roman to Integer:转换罗马数字到阿拉伯数字
  18. Delphi中小试Opencv--图像差异对比(大家来找茬辅助实现cvAbsDiff函数的使用)
  19. Windows 10, version 21H2 (released Nov 2021) 简体中文版、英文版(企业版)下载
  20. 安装Kubernets管理平台Ratel

热门文章

  1. php 使用 go函数指针,golang 什么时候使用指针
  2. linux ant脚本,linux下ant jmeter自动化测试
  3. 数学之美系列 4 -- 怎样度量信息?
  4. BZOJ-3110-K大数查询-ZJOI2013-暴力
  5. conda - 虚拟环境,常用指令
  6. 号码锁 Combination Lock
  7. 【NOIP2013模拟联考5】休息(rest)
  8. mysql分页limit运算,MySQL的limit分页查询及性能问题
  9. c# 收取邮件 解析,C#电子邮件主题解析
  10. 20211028 Stabilizability