7

私は次のコードをコンパイルしようとしています:

public class DuplicateMainExample {
    public static void main(String[] args) {
        System.out.print("A1");
    }

    public static void main(String... args) {
        System.out.print("A2");
    }   
}

Eclipseでは正常に動作していますが、両方のメソッドに警告があります-「DuplicateMainExample型のDuplicate method main(String [])

javac(javaバージョン "1.7.0_09")を使用すると、コンパイルエラーが発生します。

>javac DuplicateMainExample.java
DuplicateMainExample.java:8: error: cannot declare both main(String...) and main
(String[]) in DuplicateMainExample
        public static void main(String... args) {
                           ^
1 error

を使用してEclipseでコンパイルする方法はjavac

4

2 に答える 2

9

まったく同じシグニチャを使用して同じメソッドを2回宣言したという理由だけで、クラスのメインメソッドを1つだけ宣言する必要があります。

Eclipseには独自のコンパイラが組み込まれており、2つの主要なメソッドの場合、最後のメソッドを取得します。Eclipseコンパイラとjavacコンパイラは2つの異なるコンパイラです...

詳細については、この古い投稿をご覧ください...

javacでコンパイルしたい場合は、Eclipse内からant javacアダプターを使用してみることができます...しかし、ECJはjavac(私の意見)よりも優れていると思います...

于 2013-01-06T19:56:37.687 に答える
5

Eclipseはjavacを使用しません。動的な強調表示を行うその機能は、インクリメンタルに動作する特別な機能を備えた独自のコンパイラと密接に関連しています。

javacを使用するIDEが必要な場合は、intellijを調べることができます。

于 2013-01-06T20:16:28.100 に答える