package myJava;
class ST extends Thread
{
public ST(String str)
{
super(str);
}
public void run()
{
String[] B={"起床","早饭","上班","下班"};
String[] S={"备课","上课","布置作业","下课"};
String Name=null;
Name=getName();
for(int i=0;i<4;i++)
{
if(Name.equals("B"))
{
System.out.println(Name+":"+B[i]);

try
{
sleep((long)(Math.random()*1000));
}
catch(InterruptedException e)
{
}
}
if(Name.equals("S"))
{
System.out.println(Name+":"+S[i]);
try
{
sleep((long)(Math.random()*1000));
}
catch(InterruptedException e)
{
}
}
}
}
}
public class TwoThreadsTest
{
public static void main(String[] args)
{
new ST("B").start();
new ST("S").start();
}
}
用控制台命令调试的
编译不出错,为何
Exception in thread "main" java.lang.NoClassDefFoundError: f:\myJava\TwoThreadsT
est
好几个正确的程序都是这样

解决方案 »

  1.   

    java.lang.NoClassDefFoundError
    找不到TwoThreadsTest.class
    文件名是TwoThreadsTest.java吗?
    Classpath包含当前目录(.)了吗?
    ...
      

  2.   

    package myjava;public class TwoThreadsTest
    {
    public static void main(String[] args)
    {
    new ST("B").start();  //调用包内类
    new ST("S").start();
    }
    }final class ST extends Thread  //加了类类型为final
    {
    public ST(String str)
    {
    super(str);
    }
    public void run()
    {
    String[] B={"起床","早饭","上班","下班"};
    String[] S={"备课","上课","布置作业","下课"};
    String Name=null;
    Name=getName();
    for(int i=0;i<4;i++)
    {
    if(Name.equals("B"))
    {
    System.out.println(Name+":"+B[i]);

    try
    {
    sleep((long)(Math.random()*1000));
    }
    catch(InterruptedException e)
    {
    }
    }
    if(Name.equals("S"))
    {
    System.out.println(Name+":"+S[i]);
    try
    {
    sleep((long)(Math.random()*1000));
    }
    catch(InterruptedException e)
    {
    }
    }
    }
    }
    }
    运行结果:
    B:起床
    S:备课
    B:早饭
    S:上课
    S:布置作业
    B:上班
    B:下班
    S:下课
      

  3.   

    回复人: edward0716(雲威龍) ( ) 信誉:99  2005-05-04 12:03:00  得分: 0  
     
     
       java.lang.NoClassDefFoundError
    找不到TwoThreadsTest.class
    文件名是TwoThreadsTest.java吗?
    Classpath包含当前目录(.)了吗?
    ...
      
     谢谢你的答复
    文件名是TwoThreadsTest.java
    classpath没有包含当前目录,
    如何包含,为什么要这样做呢!