2012-08-31 64 views
0

Possible Duplicate:
Causes of 'java.lang.NoSuchMethodError: main Exception in thread “main”'例外在线程“主要” java.nosuchmethoderror:主要

我在java.i新想编写一个程序来交换2号。
我已经在它上面写了2个程序,一个正在运行,另一个则没有。
我无法理解未运行program.pls的错误,帮助我理解我的错。
这里我给你两个程序以及输出。

的运行的程序:

public class SwapElementsExample { 


public static void main(String[] args) { 

int num1 = 10; 
int num2 = 20; 

System.out.println("Before Swapping"); 
System.out.println("Value of num1 is :" + num1); 
System.out.println("Value of num2 is :" +num2); 
swap(num1, num2); 
} 

private static void swap(int num1, int num2) { 
int temp = num1; 
num1 = num2; 
num2 = temp; 

System.out.println("After Swapping"); 
System.out.println("Value of num1 is :" + num1); 
System.out.println("Value of num2 is :" +num2); 
} 
} 

输出为:

交换NUM1的
值之前是:NUM2 10
值是:20
交换NUM1的
值之后是:20
num2的值是:10

在上面提到的程序中我没有任何问题。
但在下一个程序中,我找不到什么故障。
请帮我找到错误。

class Swap 
{ 
public static void main(int a, int b) 
{ 
int c=0; 
c=b; 
b=a; 
a=c; 
c=0; 
System.out.println(a); 
System.out.println(b); 
} 
} 

在执行过程中没有错误信息。
但在运行时有一个错误味精,那就是:
例外在线程“主要” java.nosuchmethoderror:主要

请让我知道这个计划的问题。


回答

3

public static void main(int a, int b)是不正确的。

它必须是: public static void main(String[] args)。这是根据定义。

如果你想获得第一和第二个参数:

int a = Integer.parseInt(args[0]); 
int b = Integer.parseInt(args[1]); 
+0

是的......我明白......谢谢你的朋友...... :) – rine

+0

不客气:) –

0

问题就在这里

public static void main(int a, int b) 

的Java总是从你在第一个示例代码中声明的主要方法执行程序。

+0

好吧我明白了......谢谢你的朋友...... :) – rine

+0

澄清:原型为'main'方法总是需要一个参数,它的类型是String []'。 – tbl

0

当您启动Java应用程序,Java解释器试图找到一种方法

运行应用程序。

在一个类中,您可以声明几个具有相同名称但具有不同参数的方法。像这样:

public static void main(String[] args) { 

} 

public static void main(int a, int b) { 

} 

public static void main(float a, float b) { 

} 

所有这些方法都会被编译器接受。因为每种方法都不是仅通过其名称来标识,而是通过其名称和签名来标识。签名基于您传递给方法的参数。每个参数的类型和参数序列都是签名体。

所以,当你开始你的应用,而无需public static void main(String[] args)方法里面,然后解释无法找到main方法与预期签名String[] args,并抛出异常。

相关问题