2012-08-31 97 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,並拋出異常。

相關問題