java中报错梳理总结

在写代码和调试的过程中,经常会遇到很多问题,对于这些问题的解决,我们很重要的一个依据就是报错信息。这是我们解决问题中很重要的一个切入点。

下面对我在java程序开发中遇到的一些报错做个总结:

1、NoClassDefFoundError

报错:

2014-08-18 10:32:33,871 ERROR [http-39060-Processor3] ProbeManager - Load probe core class: com.zznode.ngn.sa.psm.probe.ftp.mms.MmsMonthProbe from class path fail,cause: null
java.lang.NoClassDefFoundError
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:501)
at java.lang.Class.newInstance0(Class.java:350)
at java.lang.Class.newInstance(Class.java:303)
at com.zznode.ngn.pmp.node.mprobe.ProbeManager.addProbe(ProbeManager.java:220)
at com.zznode.ngn.pmp.node.mprobe.ProbeManageService.addProbe(ProbeManageService.java:97)

解决方案:

这个问题的原因一般是class文件的问题。

1、首先看下是不是类编译有没有报错,如果是这个问题就很容易解决了,将编译时的报错解决掉OK了。

    

2、然后看下是不是报错类中有对象类在运行时没有加载(这个原因很常见)。比如我这次错的原因就是在类MmsMonthProbe中我引用了CollectingLog类

	private void handInLog(Integer collectType, Integer collectResult,
								String message, Date measureTime,Date colTime) {
		CollectingLog  log = new CollectingLog(
									"MMSMonth业务采集",
									measureTime,
									colTime,
									collectResult,
									collectType,
									message,
									null,
									((familyNameAll != null && !"".equals(familyNameAll))
											?familyNameAll.substring(0,familyNameAll.length()-1)
													:"")
							);
		
		handIn(log); 
	}

 
但是我的jar包中没有该类,所以报错了


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中,当出现"找不到符号"的误时,通常是因为编译器无法找到所引用的类、方法或变量。这可能是由于以下几种原因导致的: 1. 缺少导入语句:如果你在代码中使用了其他包中的类或方法,你需要在代码的开头添加相应的导入语句。例如,如果你想使用java.util包中的ArrayList类,你需要在代码的开头添加`import java.util.ArrayList;`。 2. 类或方法名称拼写误:请确保你正确拼写了所引用的类或方法的名称。Java是区分大小写的,所以大小写误也会导致"找不到符号"的误。 3. 缺少依赖项:如果你使用了第三方库或框架,你需要确保你已经正确地将其添加到项目的依赖项中。如果缺少依赖项,编译器将无法找到所引用的类或方法。 4. 作用域问题:如果你在代码中引用了一个在当前作用域之外的变量或方法,编译器将无法找到它。请确保你在正确的作用域内引用变量或方法。 解决"找不到符号"误的方法包括: 1. 检查拼写误:仔细检查你所引用的类、方法或变量的名称,确保没有拼写误。 2. 添加导入语句:如果你使用了其他包中的类或方法,添加相应的导入语句。 3. 检查依赖项:确保你已经正确地将所有需要的依赖项添加到项目中。 4. 检查作用域:确保你在正确的作用域内引用变量或方法。 5. 编译整个项目:有时候,"找不到符号"误可能是由于编译器没有正确处理依赖关系而导致的。尝试重新编译整个项目,以确保所有的类和方法都被正确编译。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值