public class TestThread1{
public static void main(String args[]){
Runner1 r=new Runner1();
Thread th=new Thread(r);
th.start();
for(int i=0;i<100;i++){
System.out.println("main"+i);
}

}
}class Runner1 implements Runnable{
public void run(){
for(int i=0;i<100;i++){
System.out.println("runner"+i);
}
}
}
这个代码差不多就是马士兵那个视频上的,编译通过但是运行时出现
Exception in thread "main" java.lang.NoClassDefFoundError: TestThread1/java
我在线等,希望有人帮我回答一下.另外public class TestThread1 {
public static void main(String args[]) {
Runner1 r = new Runner1();
r.start();
//r.run();
//Thread t = new Thread(r);
//t.start();

for(int i=0; i<100; i++) {
System.out.println("Main Thread:------" + i);
}
}
}//class Runner1 implements Runnable {
class Runner1 extends Thread {
public void run() {
for(int i=0; i<100; i++) {
System.out.println("Runner1 :" + i);
}
}
}
这个是马士兵视频下载过来时的代码编译出现Exception in thread "main" java.lang.UnsupportedClassVersionError: TestThread1 (
Unsupported major.minor version 50.0) 我的jdk是1.6的,是不是说现在不支持了的意思,谢谢大家,我在线等着

解决方案 »

  1.   

    看看class名和文件名是不是一样的
      

  2.   

    应该是类名和文件名不一样,把存储此代码的文件的名字改为TestThread1.java。
      

  3.   

    你是不是把生成class文件的路径改成别的了啊
      

  4.   

    第一个问题:没找打这个类
    第二个问题:编译的class的版本和运行的版本不符吧
      

  5.   

    这问题 就是你的jdk版本不一致
    在eclipse里改下jdk Version就OK了
      

  6.   

    window菜单下Perferences选项
    --Java--Compiler--JDK compliance level
      

  7.   

    NoClassDefFoundError :找不到类错误UnsupportedClassVersionError : 不支持的类版本错误应该是文件名与公有类的类名不一致造成的!
      

  8.   

    建议楼主先用JC  不要用EC  
      写项目时在用那个!  如果用的是DOS 看看环境变量
      

  9.   

    哎,我没有说清自己的问题,编译是可以通过的,这说明不是文件名和类名不一致的问题,我用直接在命令行编译的,不存在软件的问题,至于环境变量应该不至于吧,别的都可以运行的。另外我以前经常出现的一个问题,就是有的程序运行时出现错误但退出当前运行的命令行重新开一个再运行就正常了,不知道这是怎么回事。我在看看吧,如果真的像各位说的那样,第一个问题就很容易改正,第二个我就完全不会,唯一的办法是把1.6的jdk换成1.5的试试,但这么做总有削足适履的嫌疑。
      

  10.   

    现在知道原因了,是版本的问题,我用java -versio查看一下是1.4的,原因是前几天安装了Oracle,呵呵
      

  11.   

    不管怎么说,谢谢大家的帮助.还有一个问题是,有的时候出现莫名其妙的编译问题退出当前dos窗口再重新开一个就正常,这应该是sun的问题吧