通过调试确定JVM是否从错误的位置装入了类
2018-10-31 本文已影响0人
传奇内服号
在实际开发中,我们经常会遇到由于ClassNotFoundException、NoClassDefFoundError、NoSuchMethodException等异常而导致应用等无法正常启动。一般都是由于包冲突等导致的。
这种情况下,我们可以用 -verbose 命令行选项打开JVM 的详细输出。当某些事件发生的时候(例如,类装入时),详细输出会在控制台上显示信息。要想得到额外的类装入信息,可以用详细类输出。可以用 -verbose:class 选项启动这个模式。
在Eclipse中,我们可以在Run Configuration对话框中做如下配置即可:
详细输出有助于解决类路径问题,例如没有打开 JAR 文件(因此不在类路径中)或从错误的位置装入了类。
知道类装入器在哪里寻找类、特定的类是由哪个类装入器装入的,通常很有用。