问题:在做项目时,遇到jar版本冲突的问题,并且老代码依赖不能用新jar包代替,要保证功能不变须要保证两个jar都能使用 思路:使用runtime 的exec 方式另启线程运行,然后返回结果 解决: 1):创建可运行的jar包,并创建入口main方法,方法实现新功能的调用与结果或异常的返回 public static void main(String[] args) { try { //接收参数 String privateKeyPath = args [0]; /* 业务逻辑 */ Syste…
背景:使用maven很方便,但是引入冲突也很常见.后果很严重,各种不明实体找不到,所以需要对jar包的依赖有一个清晰的认识. 查看冲突 参考:用dependency:tree查看maven引入jar包的传递依赖 maven 树 查看依赖 查看jar包的传递依赖,最方便的方式就是打依赖树,使用mvn dependency:tree -Dverbose 改命令在执行时候回重新build一次 dependency:tree -Dverbose 使用如下命令查看单个jar包的依赖 #详细查看jar包依赖…
版本冲突的解决方案 [1]调节原则 [1]路径最短者优先原则 [2]路径相同时,先声明者优先原则 [2]排除原则:用于排除某项依赖的依赖jar包 <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <exclusions> <exclusion&g…
在IDEA状态下查看项目依赖的关系 关系如下图 红色数据jar包冲突 在对应的依赖中出去去冲突依赖…
当我们在线上运行项目时,依赖很多jar包,有时候某个类的全限定名,在多个包中出现,而某个包中的类的方法没有,而且在类加载时,刚好加载了这个类,可能会报找不到方法,或者找不到类的异常,这种情况就可能是类冲突: 如: java.lang.NoSuchMethodError: com.google.common.base.Objects.toStringHelper(Ljava/lang/Object;)Lcom/google/common/base/Objects$ToStringHelper; 这…
原文网址:http://wxl24life.iteye.com/blog/1966058 自己电脑上一直用的 JDK 版本是 1.6,今天决定更新到 1.7,在安装 JDK 1.7 后,控制台输入 java 命令测试是否安装成功的时候报错了: C:\Users\wxl24life>java Registry key 'Software\JavaSoft\Java Runtime Environment\CurrentVersion' has value '1.7', but '1.6' is r…
一.引言 "老婆"和"妈妈"同时掉进水里,先救谁? 常言道:编码五分钟,解冲突两小时.作为Java开发来说,第一眼见到ClassNotFoundException.NoSuchMethodException这些异常来说,第一反应就是排包.经过一通常规和非常规操作以后,往往会找到同一个Jar包引入了多个不同的版本,这时候一般排除掉低版本.保留高版本就可以了,这是因为一般Jar包都是向下兼容的.但是,如果出现版本不兼容的情况的时候,就会陷入"老婆和妈同时掉进水…
maven是一个很好的项目管理工具,你可以轻松的定义一个引用,从而达到使用别人写好的库的作用.且maven可以轻松地和jenkins配合,从而使打包部署变得更容易. 但是也因为这样,我们变得更傻瓜了,以致于有时候都忘了一些原始的基础的方法了,当然这不是本文的目的,本文的目的在于,如何解决一些maven带的冲突问题. 问题1: jenkins 打包失败了,导致我无法安装代码到测试环境,怎么办? 答: 一般我们都会基于jenkins做一些二次开发,以适应公司内部的需求,或者优化一些修改化的东西. 但…
前言 在我之前使用Gradle的博文中已经提到,Gradle对依赖的管理是比较智能的,如果有两个包依赖于相同的包,而版本不同的时候,Gradle会进行自动的选择,从而避免jar包的冲突. 也就是说,在理论上使用Gradle一般情况下,不会出现jar包冲突,那么为什么会有今天这篇博文呢? Gradle可以帮你管理的是版本不同但是包相同的依赖.但是如果两个原本就不同的依赖之间互相发生冲突,这样的冲突Gradle就不能自动帮你完成了,因为它也不知道你需要哪一个. 问题描述 我这边以我出现的冲突为例:…
Jar包冲突是老生常谈的问题,几乎每一个Java程序猿都不可避免地遇到过,并且也都能想到通常的原因一般是同一个Jar包由于maven传递依赖等原因被引进了多个不同的版本而导致,可采用依赖排除.依赖管理等常规方式来尝试解决该问题,但这些方式真正能彻底解决该冲突问题吗?答案是否定的.笔者之所以将文章题目起为“重新看待”,是因为之前对于Jar包冲突问题的理解仅仅停留在前面所说的那些,直到在工作中遇到的一系列Jar包冲突问题后,才发现并不是那么简单,对该问题有了重新的认识,接下来本文将围绕Jar包冲突的…
来自:http://liuwei1578.blog.163.com/blog/static/49580364200991572642653/ Jar包冲突问题是在大型Java软件开发中经常遇到的问题,系统开发人员经常会为解决类似的问题耗费大量的时间进行调试和测试,本文根据各种际情况,结合WebSphere中类加载器,讨论了几种解决jar包冲突问题的办法,并给出了具体实现的步骤及源代码.读者定位为具有Java和WebSphere开发经验的开发人员.读者可以学习到在WebSphere中类加载器的定义…
Jar包冲突的相关文章: 了不得,我可能发现了Jar 包冲突的秘密   一.前言 jar包冲突分多种,简单理解来说,就是同package且同名的类在多个jar包内出现,如果两个jar包在同一个classloader下,那么最终的结果是,只会加载其中的一个. 有时,这个错误一般在运行时出现,报的错可能是,找不到某方法,或者呢,更隐蔽的,不会报错,但是逻辑不对. 针对运行中的应用,可以考虑使用阿里出品的arthas来处理. 我今天呢,只是简单的找不到方法的情况,所以不需要用到那个. 我这里的场景是,…
jar包依赖冲突,版本不兼容会导致各种各样的问题.这里推荐一款sbt插件用于查找项目中的jar包依赖关系,通过该插件可以轻松的看出某个jar包依赖哪些jar,以及某个jar被哪些jar所依赖.此外该插件还可生成可视化图形用于查看依赖关系. 插件地址:https://github.com/jrudolph/sbt-dependency-graph 引用方式: addSbtPlugin("net.virtual-void" % "sbt-dependency-graph"…
今天在一个 asp.net core 项目中遇到了 nuget 包版本冲突的问题,错误信息如下: Version conflict detected for Microsoft.AspNet.WebApi.Client. Reference the package directly from the project to resolve this issue. Cnblogs.Zzk.ServiceAgent -> Cnblogs.Net 2.0.1 -> Microsoft.AspNet.W…
问题描述:         程序中使用到javax.servlet.http.HttpServletRequest等类内容,然而这些类是依赖于tomcat容器lib包下的jar包,工程中导入这两个jar包后就会和tomcat产生冲突.           javax包下都是jdk提供接口规范,由第三方服务器厂商自己来实现.           工程中导入的目的是为了能顺利使用这两个jar包,包含正确编译.使用等.       解决方式:                  1.在tomcat的co…
现象 创建一个maven工程,引入spring-context包. <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.0.8.RELEASE</version> </dependency> 此时看左侧的lib,我们发现引入了一个坐标,多出了很多的jar包,这…
今天在一个 asp.net core 项目中遇到了 nuget 包版本冲突的问题,错误信息如下: Version conflict detected for Microsoft.AspNet.WebApi.Client. Reference the package directly from the project to resolve this issue. Cnblogs.Zzk.ServiceAgent -> Cnblogs.Net 2.0.1 -> Microsoft.AspNet.W…
Java SE 9 多版本兼容 JAR 包示例 作者:Grey 原文地址:Java SE 9 多版本兼容 JAR 包示例 说明 Java 9 版本中增强了Jar 包多版本字节码文件格式支持,也就是说在同一个 Jar 包中我们可以包含多个 Java 版本的 class 文件,这样就能做到 Jar 包升级到新的 Java 版本时不用强迫使用方为了使用新 Jar 包而升级自己的业务模块 Java 版本,也不用针对不同最低支持 Java 版本提供不同的 Jar,真正的做到了一个 Jar 包兼容所有的目的…
ssh连接问题是由于主机ssh中缺少与jsch jar包匹配的加密算法导致,jsch jar包的默认加密算法貌似是diffie-hellman-group-exchange-sha1. 在目标主机ssh服务的sshd_config文件中添加下列加密算法并重启ssh服务即可解决ssh连接问题.KexAlgorithms diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,…
用解压工具打开jar包(例子都是用7zip)   进入到META-INF目录,查看MANIFEST.MF文件,查看Bulid-Jdk,下图就为1.7.0_55版本的JDK,这就表示jetty-servlet-9.2.0.RC0.jar这个jar包的JDK版本是1.7的   当发现jar包的jdk版本为1.8,而linux的JDK版本为1.7,那么需要找到一个jdk为1.7版本的jar包,这就需要去到maven中央仓库去找到一个合适的jar包 如jetty-servlet-9.3.4.RC0.ja…
前言 Spring Boot支持传统部署和更现代的部署形式.jar跟war都支持,这里参考springboot参考手册学习记录 两种方式 jar springboot项目支持创建可执行Jar,参考手册第11.5. Creating an Executable Jar就有对这样的介绍,我这里充当一回搬运工(大家好,我是大自然勤劳的搬运工~~): 我们通过创建一个完全自包含的可执行jar文件来完成我们的示例,该文件可以在生产环境中运行.可执行jar(有时称为“胖jar”)是包含编译类和代码需要运行的…
本文转载自   https://www.cnblogs.com/whgk/p/7112560.html 该篇文章篇幅较长,大概的思路如下 maven的介绍,初步认识,获取jar包的三个关键属性 --> 介绍仓库(获取的jar包从何而来)-->用命令行管理maven项目(创建maven项目) --> 用myeclipse创建maven项目 -->详细介绍pom.xml中的依赖关系(坐标获取.定位jar包的各种属性讲解. --WH 一.简单的小问题? 解释之前,提1个小问题. 1.1.…
前几天将自己的日志工具发布到了Maven中央仓库中.这个工具本省没有多少技术含量,因为是修改别人的源代码实现的,但是将jar发布到Maven仓库却收获颇丰,因为网上有些教程过时了,在此分享下自己发布jar包的过程以及遇到的坑.我的项目时开源在Github上的,所以都是以Github为例来讲解的. 两个重要网址 因为后面会一直用到这两个网址,所以在这里着重介绍下,因为自己当初发布的时候一直没弄明白两个网站有什么作用. Issues 这个网站的主要作用就是添加自己发布jar包详情的网站,我们填写的东…
Intellij IDEA 中如何查看maven项目中所有jar包的依赖关系图 2017年04月05日 10:53:13 李学凯 阅读数:104997更多 所属专栏: Intellij Idea   版权声明:觉得此文有用的,不嫌麻烦的,就留个言呐,或者点个赞呐(额,就是文章底部的“顶”啦),要是嫌弃麻烦呢,也麻烦点个赞嘛,要是实在不想点赞呢,也不是不可以. 但是,你要是想踩一脚呢,那还是赶紧,马上,快快的闪人. 小心我手里三十米长的大刀. 哼哼.想想都怕 !!! https://blog.cs…
调用thrift接口压测的jar包,出现了错误:java.lang.NoSuchMethodError: 错误可能的原因: 有这个类,该类真的没有这个方法 有这个类,而且有好几个,他们之间发生了冲突 解决办法: 1. 查看生成jar包的maven工程,看thrift文件中是否有该方法,如果没有,就是thrift文件版本问题或调用函数出错 2. 若thrift文件中有此方法,就查看jmeter目录lib/ext下有关该方法的jar有几个,删除旧的jar包,调用最新的jar包,试运行看看 ps:一般…
一.问题背景 最近这两天,感觉自己智商急剧退化,到了自己都捉急的地步,呃,有必要记录下来,以后智商被人甩几条街的时候,看看这篇文字,找找灵感也是好的! 这个项目呢,是用IDEA开发的,我一切都弄好了,结果死活运行不起来,pom.xml文件报错,各种不能解析版本,类似于:failed to resolve artifact......我一看,好家伙,maven里面配置的所有依赖,它都不能解析下载,因为后面提示的是当前配置的版本号,我又以为是版本配置的有问题,于是本宝宝换了N个版本,最终:问题还是没…
IDEA 和 Webstorm JAR包方式破解 IDEA 我是用的IDEA版本是 18.3,更新版本的IDEA很多激活码都不能用了,或者不好激活了. 首先下载相应的 软件版本 和破解 jar包. 下载下来是这个样子: exe 是IDEA的安装包 第二个是破解的 jar 包 安装包双击打开完成安装之后.需要把jar包放到安装目录bin文件夹下,我的安装目录在D盘. 扔进去. 然后修改两个文件: 打开文件,都在文件的最后加上一句话: -javaagent:D:\Program Files\JetB…
//主类 路径 /home/fly/flywww/c/java import mypackage.One; import mypackage.Two; public class Test { public static void main(String[] args) { new One(); new Two(); System.out.println("haha"); } } //jar包 mypackage.jar jar包中有One.class,Two.class两个类 //my…
我们在搭建SSH框架的时候,需要引入各自的一些jar包,相信很多初学者跟我一样,搜个资料,照搬过来(当然版本还得对应),至于为什么要引入这些个jar包,引入它们的作用是啥子,一头雾水,今天我就来跟这些SSH的初学者一起来探究一下SSH中的jar包. 首先,先来看一下我们使用的SSH的各自版本及引入的jar包. struts2.3.1.2: struts2-core-2.3.1.jar javassist-3.11.0.GA.jar commons-io-2.0.1.jar commons-lan…
在使用maven进行项目开发时,我们需要在pom.xml文件中添加自己所需要的jar包.这就要求我们获取jar包的groupId和artifactId. 我们可以在一些maven仓库上搜索我们所需要的jar包,它会根据我们选择的版本给出相应的groupId和artifactId. 免费maven仓库有很多,本人常使用的是:http://www.mvnrepository.com/ 以mysql-connector-java-5.1.24.jar为例,我们现在网站上搜索mysql, 点击Searc…