可能重复:
Exception in thread “main” Java.lang.NoSuchMethodError: main ??
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 InsertionSort 线程“main”中的异常java.lang.NoSuchMethodError:main
答案 0 :(得分:3)
你需要一个合适的main()来使类可以运行。一个main方法应该有一个string数组作为唯一的参数,你有一个int数组。
因此,要解决它,请将其重新声明为“public static void main(String [] args)”并在方法中执行整数解析。 java和OS都不会为你做转换。
答案 1 :(得分:1)
public static void main (String[] arg)
main接受字符串数组,而不是int数组。
答案 2 :(得分:1)
JVM查找public static void main(String[])
签名,而不是以int[]
为参数的主方法。
答案 3 :(得分: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;
}
}
一个main方法,需要一个String数组,你需要一个int数组,所以我们只需将一个转换为另一个。