-1
  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();
                }
        }
}

エラーメッセージ「Exception in thread "main" java.lang.NoSuchMethodError: main」が表示される

4

7 に答える 7

3

TapeDeckTestDriveではなくメインクラスとして実行しTapeDeck、クラスを公開します

于 2011-03-12T17:59:17.873 に答える
2

次のように、TapeDeckTestDrive を public クラスにします。

 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
于 2011-03-12T18:00:23.320 に答える
1

たぶん、あなたのクラスが公開されていないからです。

于 2011-03-12T17:59:46.907 に答える
0

クラスで2つのファイルを作成し、メインメソッドを持つクラスを公開することをお勧めします。しかし、1 つのファイルを使用した上記の例が気に入った場合は、次のようにします。

コマンドラインで次のことができます:

javac FileWith2Classes  //compile make you 2 files with your classes
java TapeDeckTestDrive  //and simple run your class where you have main method
于 2011-03-12T18:25:17.000 に答える
0

次のように実行する必要があります。

java TapeDeckTestDrive

クラスTapeDeckTestDriveにはmainメソッドがあるからです。

TapeDeckメソッドを持たないクラスを実行しているように見えるmainため、エラーが発生します。

于 2011-03-12T18:01:06.507 に答える
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

于 2011-03-12T18:04:05.407 に答える
-1

メインクラスを公開する

public class TapeDeckTestDrive { }

于 2011-08-19T10:25:53.450 に答える