TestMainFunction.javaという名前の Java ソース ファイルがあるとします。
1.) ほとんどの人が知っているように、Java ファイル名は、メイン関数を含むクラス名でなければなりません。
完全に実行され、出力される以下の単純なコード (上記の名前の単一ファイル内) を参照してくださいClassOne
。
public class TestMainFunction {}
class ClassOne {
public static void main(String[] a) {
System.out.println("ClassOne");
}
}
2.) 1 つのファイルにメイン関数を持つ複数のクラスがある場合、Eclipse はユーザーに実行するクラスを選択するように求めます。
以下の単純なコード (上記のように名前が付けられた単一のファイル) を参照してください。これは完全に実行され、Eclipse プロンプトから選択したクラス名を出力します。
public class TestMainFunction {
public static void main(String[] a) {
System.out.println("TestMainFunction");
}
}
class ClassOne {
public static void main(String[] a) {
System.out.println("ClassOne");
}
}
class ClassTwo {
public static void main(String[] a) {
System.out.println("ClassTwo");
}
}
上記のすべては、私が述べたように機能します。クラスごとに個別の .class ファイルが作成されます。内部クラスを使用する場合でも、同じ動作が適用されます。
しかし、ここで正確に何が起こっているのでしょうか? 複数のクラスが 1 つのソース ファイルに存在する場合、Eclipse はどのクラスを起動するかをどのように認識しますか? 誰でも説明できますか?これを説明していただければ幸いです。