2015-10-20 5 views
1

Выполнение нижеследующего класса: «Исключение в потоке« main »java.lang.NoClassDefFoundError». Я ожидал, что исключение будет выбрано как «MainMethodNotFoundException».Исключение в теме "main" java.lang.NoClassDefFoundError вместо MainMethodNotFound

Почему noClassDefFoundError был брошен здесь?

public class TestingSwitch { 
    public static void main(String args) { 
     int cnt = 1; 
     switch(cnt){ 
      default: 
       System.out.println("Welcome"); 
      case 1: 
       System.out.println("One"); 
       break; 
      case 2: 
       System.out.println("Two"); 
       break; 
     } 
    } 

}

+0

Как вы выполняете этот код? Можете ли вы рассказать нам, какую команду вы используете для выполнения java? – jfcorugedo

+0

Ребята Я уверен, что основная подпись метода неверна. Но ответ, который я с нетерпением жду: почему «NoClassDefFoundError» вместо MainMethodNotFound? –

+0

Да, я вижу. Но это зависит от команды, которую вы используете для выполнения класса.Вы уверены, что класс, который вы печатаете на консоли, существует и скомпилирован? – jfcorugedo

ответ

1

Неправильный метод подписи.

Изменение:

public static void main(String args) 

To:

+0

'java.lang' всегда включен – jfcorugedo

1

Вы должны изменить public static void main(String args) это к public static void main(String[] args)

перспективе это

public class Test { 

     public static void main(String[] args) { 
      int cnt = 1; 
      switch(cnt){ 
       default: 
        System.out.println("Welcome"); 
       case 1: 
        System.out.println("One"); 
        break; 
       case 2: 
        System.out.println("Two"); 
        break; 
      } 
     } 

} 
1

Вот ваша ошибка:

public static void main(String args) 

Вы должны написать

0

Я попробовал ваш код, и он дал мне другую ошибку.

Эти шаги, которые я пробовал:

  1. Создать класс TestingSwitch

    vi TestingSwitch.java 
    
  2. Положите туда ваше содержание

    $ cat TestingSwitch.java 
    public class TestingSwitch { 
        public static void main(String args) { 
         int cnt = 1; 
         switch(cnt){ 
         default: 
          System.out.println("Welcome"); 
         case 1: 
          System.out.println("One"); 
          break; 
         case 2: 
          System.out.println("Two"); 
          break; 
         } 
        } 
    } 
    
  3. Компиляция класс

    javac TestingSwitch.java 
    
  4. В настоящее время существует два файла в каталоге

    -rw-r--r-- 1 xxxx xxxx 518 Oct 26 11:33 TestingSwitch.class 
    -rw-r--r-- 1 xxxx xxxx 373 Oct 26 11:33 TestingSwitch.java 
    
  5. Попробуйте выполнить класс:

    $ java TestingSwitch 
    Error: Main method not found in class TestingSwitch, please define the main method as: 
    public static void main(String[] args) 
    or a JavaFX application class must extend javafx.application.Application 
    

Я использую Oracle JDK 1.8:

java version "1.8.0_31" 
    Java(TM) SE Runtime Environment (build 1.8.0_31-b13) 
+0

Да, я тоже пробовал в Java 8 ....... Он бросил Главный метод не найдено то же, что и у вас –

Смежные вопросы