0

重複の可能性:
「java.lang.NoSuchMethodError: main Exception in thread “main”」の原因

私はJavaの初心者です。2つの番号を交換するプログラムを書きたいです。
私は2つのプログラムを書いています.1つは実行されており、もう1つは実行されていません。
実行されていないプログラムの障害を理解できません.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 の値: 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);  
}  
}  

実行時にエラーメッセージはありません。
しかし、実行時にエラーメッセージが表示されます。つまり
、スレッド「メイン」での例外 java.nosuchmethoderror:main

このプログラムの問題点を教えてください。


4

3 に答える 3

3

public static void main(int a, int b) は正しくありません。

である必要があります: public static void main(String[] args)。これは定義によるものです。

1 番目と 2 番目の引数を取得する場合:

int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
于 2012-08-31T06:49:46.307 に答える
0

Java アプリケーションを開始すると、Java インタープリターがメソッドを見つけようとします。

public static void main(String[] args)

アプリケーションを実行します。

1 つのクラスで、同じ名前の複数のメソッドを宣言できますが、取得するパラメーターは異なります。そのように:

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 に答える
0

問題はここにあります

public static void main(int a, int b) 

Java は常に、最初のサンプル コードで宣言した main メソッドからプログラムの実行を開始します。

于 2012-08-31T06:49:56.997 に答える