Java常见异常:Exception in thread "main" java.lang.NoClassDefFoundError
在某一路径下执行编译好的class文件出错。
异常如下:
E:\liwy>java Test98
Exception in thread "main" java.lang.NoClassDefFoundError: Test98
如果出现了以上错误提示,常见问题有如下两种:1 大小写写错了, 2 路径不正确。
数组错误,访问不存在的数组,数组超出绑定,代码如下:
public class ArrayDemo
{
public static void main(String args[]){
int array[] = null; //声明数组
array = new int[3]; //为数组开辟空间,大小为3
for(int i=0;i<array.length;i++){
System.out.println("array["+i+"]="+i);
}
//访问数组没有开辟的下标,这时会报异常
System.out.println("array[3]="+array[3]);
}
}
异常如下:
array[0]=0
array[1]=1
array[2]=2
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at ArrayDemo.main(ArrayDemo.java:11)
以上就是数组的索引超出绑定,就是表示数组越界。
某个类没有实例化,访问类属性时,出现空指针异常
class Person{
String name ; // 声明姓名属性
int age ; // 声明年龄属性
public void tell(){ // 取得信息
System.out.println("姓名:" + name + ",年龄:" + age) ;
}
};
public class ClassDemo03{
public static void main(String args[]){
Person per = null ; // 声明对象
//per = new Person() ; // 实例化对象
per.name = "张三" ; // 为姓名赋值
per.age = 30 ; // 为年龄赋值
per.tell() ; // 调用方法,打印信息
}
};
异常如下:
Exception in thread "main" java.lang.NullPointerException
at ClassDemo03.main(ClassDemo03.java:12)
4. 错误的多态,出现异常
class A{ // 定义类A
public void fun1(){ // 定义fun1()方法
System.out.println("A --> public void fun1(){}") ;
}
public void fun2(){
this.fun1() ; // 调用fun1()方法
}
};
class B extends A{
public void fun1(){ // 此方法被子类覆写了
System.out.println("B --> public void fun1(){}") ;
}
public void fun3(){
System.out.println("B --> public void fun3(){}") ;
}
};
public class PolDemo03{
public static void main(String asrgs[]){
A a = new A() ; // 实例化了一个父类对象
B b = (B)a ; // 发生了向下转型关系
b.fun1() ;
b.fun2() ;
b.fun3() ;
}
};
异常如下:
Exception in thread "main" java.lang.ClassCastException: A
at PolDemo03.main(PolDemo03.java:20)
5、两个数字相除,被除数为0,出现异常
public class ExceptionDemo01{
public static void main(String args[]){
System.out.println("********** 计算开始 ***********") ;
int i = 10 ; // 定义整型变量
int j = 0 ; // 定义整型变量
int temp = i / j ; // 此处产生了异常
System.out.println("两个数字相除的结果:" + temp) ;
System.out.println("********** 计算结束 ***********") ;
}
};
异常如下:
********** 计算开始 ***********
Exception in thread "main" java.lang.ArithmeticException: / by zero
at ExceptionDemo01.main(ExceptionDemo01.java:6)
6、两个数字相除,输入两个参数,分别为字母a 和b,出现异常,数字格式化出问题
public class ExceptionDemo04{
public static void www.gzlij.com main(String args[]){
System.out.println("********** 计算开始 ***********") ;
int i = 0 ; // 定义整型变量
int j = 0 ; // 定义整型变量
try{
String str1 = args[0] ; // 接收第一个参数
String str2 = args[1] ; // 接收第二个参数
i = Integer.parseInt(str1) ; // 将第一个参数由字符串变为整型
j = Integer.parseInt(str2) ; // 将第二个参数由字符串变为整型
int temp = i / j ; // 此处产生了异常
System.out.println("两个数字相除的结果:" + temp) ;
System.out.println("----------------------------") ;
}catch(ArithmeticException e){ // 捕获算术异常
System.out.println("出现异常了:" + e) ;
}
System.out.println("********** 计算结束 ***********") ;
}
};
异常如下:
********** 计算开始 ***********
Exception in thread "main" java.lang.NumberFormatException: For input string: "a"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:447)
at java.lang.Integer.parseInt(Integer.java:497)
at ExceptionDemo04.main(ExceptionDemo04.jav
7、两个数字相除,输入两个参数,如果两个参数什么也不输入,出现异常,数组超出绑定。
异常如下:
********** 计算开始 ***********
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at ExceptionDemo04.main(ExceptionDemo04.java:7)
7、assert断言的使用,当断言结果不对出现异常。
public class Test
{
public static void main(String args[]){
int i[] = {1,2,3}; // 数组长度为3
assert i.length==0; // 此处断言数组长度为0
}
}
异常如下:
D:\d代码>java -ea Test
Exception in thread "main" java.lang.AssertionError
at Test.main(Test.java:5)
l 断言需要在运行时需要加上“-ea”,如上java –ea 类名。
Java常见异常:Exception in thread "main" java.lang.NoClassDefFoundError的更多相关文章
- Hbase delete遇到的常见异常: Exception in thread "main" java.lang.UnsupportedOperationException
hbase 执行批量删除时出现错误: Exception in thread "main" java.lang.UnsupportedOperationException at j ...
- Sqoop异常:Exception in thread "main" java.lang.NoClassDefFoundError: org/json/JSONObject
18/12/07 01:09:03 INFO mapreduce.ImportJobBase: Beginning import of staffException in thread "m ...
- JAVA错误:Exception in thread "main" java.lang.NullPointerException
JAVA错误:Exception in thread "main" java.lang.NullPointerException例如: Exception in thread &q ...
- dom4j使用xpath报异常 Exception in thread "main" java.lang.NoClassDefFoundError: org/jaxen/NamespaceContext
Exception in thread "main" java.lang.NoClassDefFoundError: org/jaxen/NamespaceContext ...
- 编译运行java程序出现Exception in thread "main" java.lang.UnsupportedClassVersionError: M : Unsupported major.minor version 51.0
用javac编译了一个M.java文件, 然后用java M执行,可是出现了下面这个错误. Exception in thread "main" java.lang.Unsuppo ...
- unit测试出现异常:Exception in thread "main" java.lang.NoSuchMethodError: org.junit.platform.commons.util
在进行单元测试时,测试出现异常 Exception in thread "main" java.lang.NoSuchMethodError: org.junit.platform ...
- CXF安装和配置时出现Exception in thread "main" java.lang.UnsupportedClassVersionError:异常?
异常信息: C:\Users\>wsdl2java -h Exception in thread "main" java.lang.UnsupportedClassVersi ...
- 【异常】idea执行Main方法出现 Exception in thread "main" java.lang.NoClassDefFoundError: javax/servlet/http/HttpServletRequest
一.异常复现步骤 1)首先得是一个Spring MVC项目 注:Spring Boot项目有内置的web 容器,不会出现该问题 2)main方法存在于使用HttpServletRequest类的类中 ...
- Java异常理解之Exception in thread “main“ java.lang.ArrayIndexOutOfBoundsException
这个异常是Java中的数组越界问题 当你使用不合法的索引访问数组是会出现这种错误例如: class Solution { public static int climbStairs(int n) { ...
随机推荐
- 大数据学习路线之linux系统基础搭建
学习大数据是必须掌握一定Linux知识的,工欲善其事,必先利其器.在学习之前,首先需要搭建Linux系统,本节将讲解VMware Workstation的安装和CentOS 7系统的安装. 1.2.1 ...
- 使用Holer将本地端口映射到公网
What is holer Holerexposes local servers behind NATs and firewalls to the public internet over secur ...
- ELK学习笔记之简单适用的ES集群监控工具cerebro安装使用
安装指导及使用简介 1. 下载安装包: https://github.com/lmenezes/cerebro/releases/download/v0.7.3/cerebro-0.7.3. ...
- centos6二进制安装mysql5.5
centos 6.5,安装mysql 5.5.60 所需安装包mysql-5.5.60-linux-glibc2.12-x86_64.tar.gz.ncurses-devel-5.7-4.200902 ...
- fjwc2019 D1T2 原样输出(后缀自动机+dp)
#179. 「2019冬令营提高组」原样输出 暴力对每个串建后缀自动机,然后暴力枚举每个自动机的子串.可以拿到部分分. 然鹅我们可以把每个后缀自动机连起来. 我们知道,后缀自动机是用最少的点(空间)表 ...
- Markdown语法学习(Github/git.oschina.net上README.md书写规范)(转)
晚上在更新git.oschina.net项目时,突然想知道README.md后缀的来源,于是搜了下,发现README.md使用了一种小标记语言Markdown的语法,于是简单的看了一个,特转载如下,为 ...
- 一句话说清楚cache和buffer
我们说真正掌握和理解一个定义或者概念或者技术点最好的方式就是能够直观的展现它是什么样的,或者像什么样的,关于cache和buffer,刚刚看到一个极为显而易见的类比解释. buffer就像弹簧,用于减 ...
- 原来Github上的README.md文件这么有意思——Markdown语言详解(sublime text2 版本)
一直想学习 Markdown 语言,想起以前读的一篇 赵凯强 的 博客 <原来Github上的README.md文件这么有意思——Markdown语言详解>,该篇博主 使用的是Mac系统, ...
- 解决*.props打开失败问题
由于不同机器的绝对地址不一样,可能会出现解决*.props打开失败问题,解决方向如下: 1.找到这里缺失的.props文件,复制到固定路径下: 2.强行打开代码,这个时候是报错的 3.选择编辑 4.将 ...
- Codeforces 868C Qualification Rounds - 位运算
Snark and Philip are preparing the problemset for the upcoming pre-qualification round for semi-quar ...