Tag: classloader与

大写和NoClassDefFoundError与ClassNotFoundException

我看到跨平台的差异有关Class.forName()何时抛出ClassNotFoundException以及何时抛出NoClassDefFoundError。 这种行为在某处定义得很好,还是我偶然发现了一个错误? 请考虑以下代码(默认包中的独立java文件): public class DLExceptionType { private static void printFindError(String name) { System.out.print(name + “: “); try { Class.forName(name); System.out.println(“** no error **”); } catch (Throwable e) { System.out.println(e); } } public static void main(String[] args) { printFindError(“DLExceptionType”); printFindError(“dLExceptionType”); // note the mis-capitalization } } 代码在Linux上产生预期的输出: [eos18:~]$ java -version DLExceptionType java version “1.6.0_26” Java(TM) […]