【问题标题】:java.lang.NoClassDefFoundError when running jdk 1.7 compiled jarfile inside project compiled with 1.6 jdkjava.lang.NoClassDefFoundError 在使用 1.6 jdk 编译的项目中运行 jdk 1.7 编译的 jarfile
【发布时间】:2015-01-12 15:52:09
【问题描述】:

我遇到了一个非常奇怪的错误(对我来说)。我们在项目的 pom 文件中添加了一个新的依赖项。 jar 文件在项目中(从存储库下载),我们可以看到所有的类文件和源代码。 我们在程序中添加了一些代码来创建在新 jar 文件中定义的一些类。代码编译没有错误,war 文件部署在网络服务器(websphere)中也没有问题。 但是在调试程序时,当我们尝试从新的 jar 文件创建第一个对象时,我们发现了 java.lang.NoClassDefFoundError 异常。

今天发现jar文件是用jdk 1.7编译的,我们所有的项目都是用jdk 1.6编译的。 我在manifest文件中看到了用来编译jar文件的jdk。这个信息正确吗? jar 文件中使用的 jdks 与我的项目之间的差异可能会导致问题吗?

我检查了 jar 文件定义是否存在于类路径中,并且 websphere 服务器被重启了几次。

堆栈跟踪:

Caused by: java.lang.ClassNotFoundException: cnaf.verificateurbiciban.ws.v1.VerificateurbicibanV1ServiceCnaf
    at java.net.URLClassLoader.findClass(URLClassLoader.java:423)
    at com.ibm.ws.bootstrap.ExtClassLoader.findClass(ExtClassLoader.java:191)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:660)
    at com.ibm.ws.bootstrap.ExtClassLoader.loadClass(ExtClassLoader.java:111)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:626)
    at com.ibm.ws.classloader.ProtectionClassLoader.loadClass(ProtectionClassLoader.java:62)
    at com.ibm.ws.classloader.ProtectionClassLoader.loadClass(ProtectionClassLoader.java:58)
    at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:510)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:626)
    at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:542)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:626)
    at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:542)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:626)
    ... 56 more

【问题讨论】:

  • 你能确认它声称找不到的类确实存在于 jar 文件中吗?
  • 是的,类存在,默认init存在。代码编译,运行时失败。

标签: java eclipse maven jar websphere


【解决方案1】:

问题可能是由您用于执行代码的 JRE 版本引起的:如果您使用的是 JRE 1.6,它将不会执行为 JRE 1.7 编译的字节码。 JRE 1.7 可以完美地运行 1.6 和 1.7 字节码。尝试切换到 JRE 1.7 或更高版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-28
    • 1970-01-01
    • 1970-01-01
    • 2012-01-28
    • 2013-07-29
    • 1970-01-01
    相关资源
    最近更新 更多