没有方法主 - 但主要是吗?

时间:2011-03-12 17:57:00

标签: java main-method

  class TapeDeck {

        boolean canRecord = false;

        void playTape() {
                System.out.println("Tape Player");
        }

        void recordTape() {
                System.out.println("Tape Recording");
        }
}

class TapeDeckTestDrive {
        public static void main (String [] args) {

                TapeDeck t = new TapeDeck();

                t.canRecord = true;
                t.playTape();

                if (t.canRecord == true) {
                        t.recordTape();
                }
        }
}

获取错误消息,“线程中的异常”主“java.lang.NoSuchMethodError:main”

7 个答案:

答案 0 :(得分:3)

使用TapeDeckTestDrive作为主要课程而不是TapeDeck - 并让您的课程公开

答案 1 :(得分:2)

让TapeDeckTestDrive像这样公共类:

 class TapeDeck {

    boolean canRecord = false;

    void playTape() {
            System.out.println("Tape Player");
    }

    void recordTape() {
            System.out.println("Tape Recording");
    }
}

public class TapeDeckTestDrive {
    public static void main (String [] args) {

            TapeDeck t = new TapeDeck();

            t.canRecord = true;
            t.playTape();

            if (t.canRecord == true) {
                    t.recordTape();
            }
    }
}

然后当你去运行它时,请致电:

java TapeDeckTestDrive

答案 2 :(得分:1)

也许是因为你的班级不公开。

答案 3 :(得分:0)

您需要将其运行为:

java TapeDeckTestDrive

因为班级TapeDeckTestDrive具有main方法。

看起来您正在运行没有TapeDeck方法的main类,因此会出错。

答案 4 :(得分:0)

TapeDeck.java

public class TapeDeck {

    boolean canRecord = false;

    void playTape() {
            System.out.println("Tape Player");
    }

    void recordTape() {
            System.out.println("Tape Recording");
    }
}

TapeDeckTestDrive.java

public class TapeDeckTestDrive {
    public static void main (String [] args) {

            TapeDeck t = new TapeDeck();

            t.canRecord = true;
            t.playTape();

            if (t.canRecord == true) {
                    t.recordTape();
            }
    }
}

并继续使用 >java TapeDeckTestDrive.java

答案 5 :(得分:0)

最好使用您的类制作2个文件,并使公开具有main方法的类。但如果你喜欢上面的例子,只需要1个文件:

在命令行中,您可以:

javac FileWith2Classes  //compile make you 2 files with your classes
java TapeDeckTestDrive  //and simple run your class where you have main method

答案 6 :(得分:-1)

让您的主要课程公开

public class TapeDeckTestDrive { }