程序编译的时候提示找不到main class
class MultiThread implements Runnable

private String name;
public MultiThread(String name)
{
this.name=name;
Thread t=new(this,name);
t.start();
}
public void run()
{
for(int i=5;i>0;i--)

try
{
System.out.println("Thread"+Thread.currentThread().getName()+":"+i);
Thread.sleep(100);
System.out.println("Thread"+Thread.currentThread().getName()+"exit");
}
catch(InterruptedException e)
{
System.out.println("Thread"+Thread.currentThread().getName()+"is interrupted");
}
}
}
class MultiThreadDemo
{
public static void main(String [] args)
{
new MultiThread("a");
new MultiThread("b");
new MultiThread("c");
System.out.println("Thread"+Thread.currentThread().getName()+"start");
try
{
Thread.sleep(3000);
}
catch(InterruptedException e)
{
System.out.println("Thread"+Thread.currentThread().getName()+"is interrupted");
}
}
}

解决方案 »

  1.   


    class MultiThreadDemo implements Runnable {
    String name;
    public MultiThreadDemo(String name){
    this.name=name;
    } public void run() {
    for (int i = 5; i > 0; i--) try {
    System.out.println("Thread" + Thread.currentThread().getName()
    + ":" + i);
    Thread.sleep(100);
    System.out.println("Thread" + Thread.currentThread().getName()
    + "exit");
    } catch (InterruptedException e) {
    System.out.println("Thread" + Thread.currentThread().getName()
    + "is interrupted");
    }
    } public static void main(String[] args) {
    new Thread(new MultiThreadDemo("a")).start();
        new Thread(new MultiThreadDemo("b")).start();
    new Thread(new MultiThreadDemo("c")).start();
    System.out.println("Thread" + Thread.currentThread().getName()
    + "start");
    try {
    Thread.sleep(3000);
    } catch (InterruptedException e) {
    System.out.println("Thread" + Thread.currentThread().getName()
    + "is interrupted");
    }
    }
    }
      

  2.   

    或者这样
    你调用的不对。这样或是上面那样!class MultiThread implements Runnable {
    String name;
    public MultiThread(String name){
    this.name=name;
    } public void run() {
    for (int i = 5; i > 0; i--) try {
    System.out.println("Thread" + Thread.currentThread().getName()
    + ":" + i);
    Thread.sleep(100);
    System.out.println("Thread" + Thread.currentThread().getName()
    + "exit");
    } catch (InterruptedException e) {
    System.out.println("Thread" + Thread.currentThread().getName()
    + "is interrupted");
    }
    }}
    class MultiThreadDemo{
    public static void main(String[] args) {
    new Thread(new MultiThread("a")).start();
        new Thread(new MultiThread("b")).start();
    new Thread(new MultiThread("c")).start();
    System.out.println("Thread" + Thread.currentThread().getName()
    + "start");
    try {
    Thread.sleep(3000);
    } catch (InterruptedException e) {
    System.out.println("Thread" + Thread.currentThread().getName()
    + "is interrupted");
    }
    }
    }
      

  3.   


    class MultiThread implements Runnable

    private String name;public void run()
    {
    for(int i=5;i>0;i--)try
    {
    System.out.println("Thread "+Thread.currentThread().getName()+":"+i);
    Thread.sleep(100);
    System.out.println("Thread "+Thread.currentThread().getName()+"exit");
    }
    catch(InterruptedException e)
    {
    System.out.println("Thread "+Thread.currentThread().getName()+"is interrupted");
    }
    }
    public MultiThread(String name)
    {
    this.name=name;
    //System.out.println(name);
    Thread t=new Thread(this);
    t.start();
    }}
    class MultiThreadDemo
    {
    public static void main(String [] args)
    {
    System.out.println("Thread    "+Thread.currentThread().getName()+"start");
    new MultiThread("a");
    new MultiThread("b");
    new MultiThread("c");try
    {
    Thread.sleep(3000);
    }
    catch(InterruptedException e)
    {
    System.out.println("Thread "+Thread.currentThread().getName()+"is interrupted");
    }
    }
    }你的
    Thread t=new(this,name);这行不对 没有这么写的。
      

  4.   

    入口main方法所在的类必须是当前public类
      

  5.   

    是不确定的,JVM决定调度哪个线程,所以两次运行的结果可能不一样
      

  6.   

    你的这个构造方法有问题:
    public MultiThread(String name)
    {
    this.name=name;
    Thread t=new(this,name);
    t.start();
    }
    改为:
    public MultiThread(String name)
    {
    this.name=name;
    Thread t=new Thread(this,name);
    t.start();
    }
    输出结果:
    Threadmain    start
    Threadb:5
    Threada:5
    Threadc:5
    Threadaexit
    Threadcexit
    Threadc:4
    Threadbexit
    Threadb:4
    Threada:4
    Threadcexit
    Threadc:3
    Threadaexit
    Threada:3
    Threadbexit
    Threadb:3
    Threadcexit
    Threadc:2
    Threadaexit
    Threada:2
    Threadbexit
    Threadb:2
    Threadaexit
    Threadcexit
    Threadc:1
    Threadbexit
    Threada:1
    Threadb:1
    Threadcexit
    Threadaexit
    Threadbexit