Java Jar地狱运行时异常

Devanathan

运行单元测试时,我遇到了jar hell的问题。

java.lang.RuntimeException: found jar hell in test classpath
    at org.elasticsearch.bootstrap.BootstrapForTesting.<clinit>(BootstrapForTesting.java:95)
    at org.elasticsearch.test.ESTestCase.<clinit>(ESTestCase.java:99)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at com.carrotsearch.randomizedtesting.RandomizedRunner$2.run(RandomizedRunner.java:585)
Caused by: java.lang.IllegalStateException: jar hell!
class: org.apache.commons.io.CopyUtils
jar1: C:\Users\vvenkatasubbu\.gradle\caches\modules-2\files-2.1\commons-io\commons-io\1.3.2\b6dde38349ba9bb5e6ea6320531eae969985dae5\commons-io-1.3.2.jar
jar2: C:\Users\vvenkatasubbu\.gradle\caches\modules-2\files-2.1\org.apache.commons\commons-io\1.3.2\b6dde38349ba9bb5e6ea6320531eae969985dae5\commons-io-1.3.2.jar
    at org.elasticsearch.bootstrap.JarHell.checkClass(JarHell.java:282)
    at org.elasticsearch.bootstrap.JarHell.checkJarHell(JarHell.java:186)
    at org.elasticsearch.bootstrap.JarHell.checkJarHell(JarHell.java:87)
    at org.elasticsearch.bootstrap.BootstrapForTesting.<clinit>(BootstrapForTesting.java:93)
    ... 4 more

我遇到了上述错误,并通过删除了不必要的jar文件解决了这些错误。

但是我面临以下两个jar的问题,即tomcat-embed-core-8.0.36.jar和hibernate-jpa-2.1-api-1.0.0.Final.jar。这两者之间有一个共同的类,我需要两个jar文件,任何人都可以向我解释如何解决此问题。我都需要jar文件。

java.lang.RuntimeException: found jar hell in test classpath
        at org.elasticsearch.bootstrap.BootstrapForTesting.<clinit>(BootstrapForTesting.java:95)
        at org.elasticsearch.test.ESTestCase.<clinit>(ESTestCase.java:99)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:348)
        at com.carrotsearch.randomizedtesting.RandomizedRunner$2.run(RandomizedRunner.java:585)
    Caused by: java.lang.IllegalStateException: jar hell!
    class: javax.persistence.PersistenceProperty
    jar1: C:\Users\vvenkatasubbu\.gradle\caches\modules-2\files-2.1\org.apache.tomcat.embed\tomcat-embed-core\8.0.36\de87fa65671daad59773c8280eeabbd335f42c\tomcat-embed-core-8.0.36.jar
    jar2: C:\Users\vvenkatasubbu\.gradle\caches\modules-2\files-2.1\org.hibernate.javax.persistence\hibernate-jpa-2.1-api\1.0.0.Final\5e731d961297e5a07290bfaf3db1fbc8bbbf405a\hibernate-jpa-2.1-api-1.0.0.Final.jar
        at org.elasticsearch.bootstrap.JarHell.checkClass(JarHell.java:282)
        at org.elasticsearch.bootstrap.JarHell.checkJarHell(JarHell.java:186)
        at org.elasticsearch.bootstrap.JarHell.checkJarHell(JarHell.java:87)
        at org.elasticsearch.bootstrap.BootstrapForTesting.<clinit>(BootstrapForTesting.java:93)
        ... 4 more

提前致谢。

Devanathan

我已经通过覆盖单元测试sorce文件夹中的JarHell类来解决此问题。

我已经完成的步骤

  1. 在测试文件夹中创建一个单独的程序包。

    org.elasticsearch.bootstrap

  2. 创建一个新类并粘贴以下代码。

package org.elasticsearch.bootstrap;

import java.net.URL;

public class JarHell {
    private JarHell() {}
    public static void checkJarHell() throws Exception {}
    public static void checkJarHell(URL urls[]) throws Exception {}
    public static void checkVersionFormat(String targetVersion) {}
    public static void checkJavaVersion(String resource, String targetVersion) {}
    public static URL[] parseClassPath() {return new URL[]{};}
}
  1. 做gradlew构建时,问题已得到解决。

  2. 要单独运行集成测试,请将以下行添加到运行配置中的VM参数中。

    -ea -Dtests.security.manager=false

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

聚合Java 8流中的运行时异常

来自分类Dev

防止在Java中退出运行时异常循环

来自分类Dev

将Burrsuite的JAR传递给Java运行时

来自分类Dev

Java:我可以在运行时将运行时异常注入到任意类方法中吗?

来自分类Dev

运行时的Java注释

来自分类Dev

cmu sphinx4 java-由FileNotFoundException引起的运行时异常

来自分类Dev

如何吞下 IOException 作为自定义运行时异常 Java 8

来自分类Dev

在 Java 中分配空引用时是否可能引发运行时异常?

来自分类Dev

java 运行时可触发的异常是否有限制?

来自分类Dev

Java Jar文件从批处理文件运行时不发送电子邮件?

来自分类Dev

Java 6运行时不覆盖从.jar依赖中调用的类

来自分类Dev

如何从jar访问package-info.java运行时中的程序包级别注释?

来自分类Dev

简单的Java 11 JavaFXprogram,从JAR文件运行时错误(视窗)

来自分类Dev

在运行时加载jar文件java.lang.NoClassDefFoundError:kotlin / jvm / internal / markers / KMappedMarker

来自分类Dev

Java 6运行时不会覆盖从.jar依赖关系中调用的类

来自分类Dev

Java与jar一起运行时不遵循-cp选项的类路径规范

来自分类Dev

java通用方法,运行时错误,

来自分类Dev

运行时的Java解释器代码

来自分类Dev

在运行时更改Java类

来自分类Dev

Java中的运行时多态示例?

来自分类Dev

Java运行时创建列表

来自分类Dev

JAVA运行时间过多

来自分类Dev

Java程序出现运行时错误

来自分类Dev

安装Java运行时环境

来自分类Dev

如何计算递归运行时(java)

来自分类Dev

安装Java运行时环境

来自分类Dev

运行时java.lang.ClassCastException

来自分类Dev

Java中的NZEC运行时错误

来自分类Dev

从Java运行时隐藏Putty终端

Related 相关文章

热门标签

归档