【发布时间】:2013-08-10 11:52:13
【问题描述】:
我正在开发一项服务,为报告准备电子表格。我正在使用jxl-2.4.2.jar 来实现这一点(请注意,由于兼容性限制,我不能使用最新版本)。当我在 Eclipse 上本地执行代码时,它工作正常。我的eclipse有java 1.5。
当我在我的测试环境中部署我的代码时,它为jxl.*(jxl 中的任何类)提供NoClassdefFound error。我的测试环境有 IBM 的 java 1.5。我相信在这种情况下使用 IBM 版本或 Sun 版本的 java 没有任何区别。
我相信当 JVM 无法在运行时加载类或类具有任何静态方法/属性时,可能会发生此错误。我检查了这些类,它们都没有静态内容。所以,这可能是别的东西。
仅供参考..我正在使用 ant 构建项目并检查 build.xml。它显示了 java 1.5 的正确版本。有人可以帮忙解决这个错误吗?仅供参考。我的项目位于 AIX 5.0 服务器上。
在这方面的任何帮助非常感谢。提前致谢。
【问题讨论】:
-
当您使用
ant构建时,您应该在dist目录中结束您的jar文件和lib文件。您是否将这两个都移到了您的测试环境中?lib文件夹需要在jar旁边,或者在运行jar时需要使用-cp选项。 -
将鼠标悬停在“noclassdeffounderror”标签上并阅读它。通常这是由于 jar 文件不匹配,或者使用一组编译并使用另一组运行,或者在类路径中有两个不兼容的 jar。但这可能是由于类本身的编码错误(例如错误的包名)、静态初始化期间的错误等造成的。
-
@hotlicks 显然这不是解释的正确位置。
-
@ThorbjørnRavnAndersen - 什么地方不适合解释?
-
@HotLicks 在标签的悬停文本中。
标签: java eclipse noclassdeffounderror