2011-02-08 70 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;在线程的Java插入排序 异常 “主要” java.lang.NoSuchMethodError:主要

+0

这是什么“经典”? – dty 2011-02-08 21:36:12

回答

3

你需要一个合适的main()使类运行的。一个主要的方法应该有一个字符串数组作为唯一的参数,你有一个int数组。

因此,要解决它,请将其重新声明为“public static void main(String [] args)”并在该方法中执行整数解析。 Java和OS都不会为你做这种转换。

1
public static void main (String[] arg) 

main接受字符串数组,而不是int数组。

1

JVM会查找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; 
    } 
} 

一个主要方法,需要一个String数组,你需要一个int数组,所以我们只是转换一个到另一个。

相关问题