0

可能重复:
'java.lang.NoSuchMethodError:线程“main”中的主要异常'的原因

我是java的新手。我想写一个程序来交换2个。
我在上面写了 2 个程序。一个正在运行,另一个没有。
我无法理解未运行程序的错误。请帮助我理解我的错误。
在这里,我给你两个程序以及输出。

正在运行的程序:

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 的交换
值之前是:10
num2 的值是: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);  
}  
}  

在执行中没有错误消息。
但在运行时有一个错误消息,即:
线程“main”中的异常 java.nosuchmethoderror:main

请让我知道这个程序的问题。


4

3 回答 3

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]);
于 2012-08-31T06:49:46.307 回答
0

问题出在这里

public static void main(int a, int b) 

Java 总是从您在第一个示例代码中声明的 main 方法开始执行程序。

于 2012-08-31T06:49:56.997 回答
0

当您启动 java 应用程序时,java 解释器会尝试查找方法

public static void main(String[] args)

运行应用程序。

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

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,并引发异常。

于 2012-08-31T06:54:41.710 回答