2011-02-08 4 views
-1

Possible Duplicate:
Exception in thread “main” Java.lang.NoSuchMethodError: main ??КЛАССИЧЕСКАЯ ---> Исключение в потоке "главный" java.lang.NoSuchMethodError: главный

public class InsertionSort 
{ 
public static void main (int[] a) 
{ 
    int j; 
    for(int p=1 ; p<a.length ; p++) 
    { 
     int tmp = a[p]; 
     for(j=p ; j>0 && tmp<a[j-1] ; j--) 
     { 
      a[j] = a[j-1]; 
     } 
     a[j] = tmp; 
    } 
} 
} 

И это происходит в терминале. (Я на Mac, если это имеет значение) Javac InsertionSort.java; ява Exception сортировка вставок в потоке «главный» java.lang.NoSuchMethodError: главный

+0

Что такое «CLASSICAL»? – dty

ответ

3

Вам нужен правильный основной(), чтобы сделать класс работоспособным. Основной метод должен иметь массив строк в качестве единственного аргумента, у вас есть массив ints.

Итак, чтобы решить эту проблему, обновите ее до «public static void main (String [] args)» и выполните целочисленный синтаксический анализ в методе. Ни Java, ни ОС не сделают это преобразование для вас.

1
public static void main (String[] arg) 

main принимает массив строк, а не массив int.

1

JVM look for public static void main(String[]) подпись, а не основной метод, который принимает аргумент int[].

1

Он будет работать, если вы делаете это так:

public static void main (String[] args) 
{ 
    int[] a = new int[args.length]; 
    for(int i = 0; i < args.length; i++){ 
     a[i]=Integer.parseInt(args[i]); 
    } 
    int j; 
    for(int p=1 ; p<a.length ; p++) 
    { 
     int tmp = a[p]; 
     for(j=p ; j>0 && tmp<a[j-1] ; j--) 
     { 
      a[j] = a[j-1]; 
     } 
     a[j] = tmp; 
    } 
} 

Основной метод, необходим массив строк, вам нужно целочисленный массив, так что мы просто преобразовать один в другой.

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