11

public static void署名の...部分を変更したくありませんがString[] args、この関数の「名前を変更」することは可能ですか(たとえば、楽しみのために)?

したがって、実行のエントリポイントは、別の名前の関数になります。

名前を次のように変更しbootます(歴史的でない場合は、私の特定のケースでの実際の使用をより適切に反映します)。


関連している

私は何か違うことをすることに興味がありますが、これらの質問はまだ興味深いものです。

javaのpublicstaticvoid main(String arg [])は修正されていますか?

関数main()の名前がmainである理由

4

7 に答える 7

11

いいえ。Java言語仕様には次のように書かれています。

Java仮想マシンは、指定されたクラスのメソッドを呼び出し、main文字列の配列である単一の引数を渡すことによって実行を開始します。

JVM仕様は同じことを言っています:

次に、Java仮想マシンは初期クラスをリンクして初期化し、パブリッククラスメソッドを呼び出しますvoid main(String[])

于 2012-06-08T10:55:33.857 に答える
4

簡単な答えいいえ、理由、仕様はそのようなものであり、開始点としてカスタム名をJVM検索するだけで、カスタム名は検索しません。main正確な署名でメインと呼ばれる必要がありますpublic static void main(String[] args)

論理的には、コマンドにstartメソッドを渡すオプションがない限り、メソッドJVMの代わりに何かmainを探す必要があることをどのように知るかは理にかなっています。bootjava

しかし、それは正当な理由もなくあまりにも多くを求めています。

第二に、標準化されているため、開発者コミュニティにも役立ちます。コードを見る人は誰でも、特定のJavaスタンドアロンプ​​ログラムの実行方法を知っているか、プロジェクトがあるかどうかを言うと、最初のポイントは常にメインメソッドを探すことです。進め。

于 2012-06-08T10:56:22.470 に答える
2

いいえ。Java言語仕様に従ってそれを行うことはできません。ただし、必要に応じて、Javaはオープンソースプロジェクトであるため、Java言語の完全なソースコードをダウンロードし、それに応じて変更します(つまり、JVM自体のソースコードを変更します)。これがあなたがそれをすることができる唯一の方法です。

だから今あなたは理解することができます、なぜ私がそれが不可能だと言ったのか。

于 2012-06-08T10:56:00.677 に答える
2

開始時に、JVMはpublic static void main引数として文字列の配列を持つメソッドから検索しています。したがって、できることは引数の名前を変更することだけですargs。ブートのような方法が必要な場合、誰もあなたがこのようなことをするのを止めません(個人的にはその「パターン」はお勧めしません)

static void boot(String[] arguments){
    //your logic
}

public static void main(String[] args) {
    boot(args);
}
于 2012-06-08T10:57:26.903 に答える
1

アプリケーションはから実行を開始しpublic static void main(String[] args)ます。これは、JVMが手続きを開始するために見るポイントのようなものです。これを変更した場合、JVMは自由にアプリケーションを起動しないようになります。

boot()アプリケーションの開始点として使用したい場合は、で呼び出しますmain()

于 2012-06-08T10:55:46.467 に答える
1

簡単な答えはNOです。プログラムの実行を開始すると、 public static void main(String[] args)String配列引数をとるプログラムが検索されます。このエントリポイントからメインスレッドが開始されます。

于 2012-06-08T11:43:19.280 に答える
1

はい、JVMの構成を変更して、mainメソッドの代わりに別の名前のメソッドを検索させることができれば、mainメソッドの名前を変更できます。

于 2018-05-23T12:25:51.130 に答える