黑马程序员技术交流社区
标题:
为什么运行程序经常出现这种情况??求大神详解
[打印本页]
作者:
↑↓ME→←
时间:
2014-2-9 23:06
标题:
为什么运行程序经常出现这种情况??求大神详解
运行时老是出现这种情况,怎么办?是设置的问题嘛
QQ截图20140209230234.png
(146.79 KB, 下载次数: 13)
下载附件
2014-2-9 23:04 上传
作者:
郭运川
时间:
2014-2-9 23:16
当你编译源文件 以后都会生成一些类
执行时要用java(main所在的类)
如果找不到相应的类,执行就会出现NoClassDefFoundError的异常
作者:
欢欢
时间:
2014-2-9 23:25
1.首先javac编译你的.Java文件,
2.然后再Java编译.class文件,这时候就不用写后缀名了。
作者:
↑↓ME→←
时间:
2014-2-9 23:33
import java.util.*;
//由于Student对象不具备比较性,无法存入TreeSet集合中,所以要实现Comparable,实现compareTo方法
public class TreeSetTest//无法编译,不知怎么回事儿?
{
public static void main(String args[]){
TreeSet<Student> ts=new TreeSet<Student>();
ts.add(new Student("小白",21));
ts.add(new Student("小黄",20));
ts.add(new Student("小黑",21));
ts.add(new Student("小红",19));
ts.add(new Student("小白",21));
/*Exception in thread "main" java.lang.ClassCastException:
Student cannot be cast to java.lang.Comparable 由于Student对象没有比较性
*/
Iterator it=ts.iterator();
while(it.hasNext()){ //打印
Student s=(Student)it.next();
sop(s.getName()+".."+s.getAge());
}
}
public static void sop(Object obj){
System.out.println(obj);
}
}
class Student implements Comparable //该接口强制让Student具有比较性
{
private String name;
private int age;
Student(String name,int age){
this.name=name;
this.age=age;
}
//实现compareTo方法
public int compareTo(Object obj){
if(!(obj instanceof Student))
throw new RuntimeException("不是学生对象");
Student t=(Student)obj;
System.out.println(this.name+".."+t.name);
if(this.age>t.age) //当调用对象年龄年龄大于比较对象时
return 1;
if(this.age==t.age){ //当调用对象年龄等于比较对象时,再比较姓名是否相等
// System.out.println(this.name+".."+t.name);
if(this.name.equals(t.name))
return 0;
}
return -1; //年龄小于比较对象返回-1
}
String getName(){
return name;
}
int getAge(){
return age;
}
}
import java.util.*;
//由于Student对象不具备比较性,无法存入TreeSet集合中,所以要实现Comparable,实现compareTo方法
public class TreeSetTest//无法编译,不知怎么回事儿?
{
public static void main(String args[]){
TreeSet<Student> ts=new TreeSet<Student>();
ts.add(new Student("小白",21));
ts.add(new Student("小黄",20));
ts.add(new Student("小黑",21));
ts.add(new Student("小红",19));
ts.add(new Student("小白",21));
/*Exception in thread "main" java.lang.ClassCastException:
Student cannot be cast to java.lang.Comparable 由于Student对象没有比较性
*/
Iterator it=ts.iterator();
while(it.hasNext()){ //打印
Student s=(Student)it.next();
sop(s.getName()+".."+s.getAge());
}
}
public static void sop(Object obj){
System.out.println(obj);
}
}
class Student implements Comparable //该接口强制让Student具有比较性
{
private String name;
private int age;
Student(String name,int age){
this.name=name;
this.age=age;
}
//实现compareTo方法
public int compareTo(Object obj){
if(!(obj instanceof Student))
throw new RuntimeException("不是学生对象");
Student t=(Student)obj;
System.out.println(this.name+".."+t.name);
if(this.age>t.age) //当调用对象年龄年龄大于比较对象时
return 1;
if(this.age==t.age){ //当调用对象年龄等于比较对象时,再比较姓名是否相等
// System.out.println(this.name+".."+t.name);
if(this.name.equals(t.name))
return 0;
}
return -1; //年龄小于比较对象返回-1
}
String getName(){
return name;
}
int getAge(){
return age;
}
}
复制代码
这是我的代码,上面是运行截图
作者:
↑↓ME→←
时间:
2014-2-9 23:35
复制了两遍
作者:
LuckyQS
时间:
2014-2-11 14:10
应该是你没有编译,或者编译后的class文件不在本文件夹
作者:
何苦似梦离
时间:
2014-2-11 14:18
看提示大哥,类没有找到的错误,这个问题太简单了
以下来自百度:
“没有找到这样的类”错误
表面上看是类的名称错误,其实更有可能是classpath环境变量没有配置好。
建议复查类的名称包括大小写,如果有包的情况下,注意类文件放的位置。
环境变量classpath配置中有没有小数点“.”,有没有java默认类库的位置,有没有你自己的类文件顶层目录等。
作者:
未烧开的白开水
时间:
2014-2-11 14:58
“没有找到这样的类”错误
表面上看是类的名称错误,其实更有可能是classpath环境变量没有配置好。
建议复查类的名称包括大小写,如果有包的情况下,注意类文件放的位置。
环境变量classpath配置中有没有小数点“.”,有没有java默认类库的位置,有没有你自己的类文件顶层目录等。
作者:
↑↓ME→←
时间:
2014-2-11 15:07
谢谢各位
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2