昨天在服务器上出现了这个错误。这个类是JDK里面的,按理说不应该出问题。后来看了下 java.util.Currency的源代码,在static方法中,要load一个currency.data的配置文件。检查了下,服务器上的jdk果然没有这个文件。正是因为缺少了这个文件,classLoader在load这个class的过程中,static方法调用失败了,抛出异常,最后异常被包装为NoClassDefFoundError.
后来从开发机器上jdk/jre/lib/下面的copy一个currency.data过去,放到jdk/lib下面,和jdk/jre/lib下面,搞定。