0

クラスでメイン メソッドを宣言するときはいつでも、常にString「args」という配列を作成する必要があります。ポイントは何ですか?私が岩の下に住んでいない限り、Java のコマンドライン引数はほとんど使用されなくなりました。そして、これを実行しようとすると...

//this program won't compile
public class SomeClass {
    public static void main(){
        System.out.println("This text will never be displayed :(");
    }
}

出力は、これを赤いテキストで示しています。

エラー: クラスSomeClassにメイン メソッドが見つかりません。メイン メソッドを次のように定義してください:
    public static void main(String[] args)

初心者の Java プログラマーである私は、そのパラメーターをメイン メソッドに入力する必要がある理由を誰かが教えてくれたら、非常にありがたいです。

4

7 に答える 7

7

これは、Java クラスを実行するときに呼び出されるメイン メソッドのシグネチャであるためです。どのメソッドが実行されるかについて何らかの規則が必要です。慣例により、

public static void main(String[] args) method

コマンドライン引数が使用される状況はたくさんあります。それらが使用されないのはなぜですか?

あなたは尋ねることができます:なぜそれが必要なのですか?他のメインメソッドを選択しないのはなぜですか? 答えは、メリットがなくても複雑さが増すということです。現在のように、メイン関数は独特に見えます。それを見れば、それが呼び出されるものであることがわかります。いずれかのメインが呼び出される場合は、常に自問する必要があります: 私が見ているメインは呼び出されるメインですか、それともこのクラスには優先される別のメインがありますか?

于 2011-11-12T04:46:42.087 に答える
2

簡単な答え: それが Java のやり方だからです。

コマンドライン引数は常に使用されますが、ランチャー スクリプトが原因で、またはプログラムがサーバー上で実行されているなどの理由で、常に表示されるとは限りません。

とはいえ、多くの場合、コマンド ライン引数は-Dさまざまであり、 main. しかし、それはあなたが何をしているかによります。

于 2011-11-12T04:50:52.753 に答える
2

なぜなら

  1. コマンド ライン引数は、多くのUI プログラムでさえも使用されています ( Microsoft Outlook が非常に便利なコマンド ライン引数をサポートしていることをご存知ですか? )*; と:
  2. それがジャスト・ハウ・ジャワ・ワークス (TM)です。とりわけ、コードの複雑さ (複数のフォームと偶発的なシャドーイングの可能性を禁止することによって) とランタイム (呼び出す「メイン」を見つける必要がないことによって) の両方を軽減します。「args」なしで 2 次フォームを許可すると、追加が少なすぎます。

幸せなコーディング...


*はい、Outlook は Java ではありません。ただし、Outlook にコマンド ライン引数がある場合、それらにはまだ何らかの価値があるはずです。それは誇張でした ;-)

ファイルの読み取りを扱うほとんどすべての UI プログラムでは、コマンドライン引数 (Gimp、メモ帳、Firefox など) を介して開くファイルを指定できます。とりわけ、これは、Windows エクスプローラーなどの項目で「ダブルクリックして開く」機能との統合を可能にするためです。

于 2011-11-12T04:51:17.200 に答える
2

Java アプリケーションは、コマンド ラインから任意の数の引数を受け入れることができます。これにより、ユーザーはアプリケーションの起動時に構成情報を指定できます。コマンドライン引数から)そして、他の誰もがここで言ったように、それはその通りです!

神のために、私がこれを必要としないなら、他の誰もこれを必要としないなら、言わないでください! :)

于 2011-11-12T04:59:04.917 に答える
0

それが構文上の規則であると言う以外に、なぜそれが必要なのか、私には実際にはわかりません。関数が Lisp/Scheme で (関数名() を定義) であるのと同じように、または Ruby で do..end ブロックが存在するのと同じように、Java Main 関数の構文は String[] 引数を使用します。

コマンドライン引数を使用しないことに関しては、プログラムに完全に依存しています。全体的に。コマンドライン引数を取るプログラムを常にJavaで書いています。それはあなたが達成しようとしていることの問題です。

于 2011-11-12T04:47:01.217 に答える
0

私が考えることができる 1 つのケースは、GUI と一緒にソフトウェアにコマンドライン駆動のインターフェイスが必要な場合です。例として Android ツールがあります。これらはすべて、コンソール駆動のインターフェイスを備えています。

于 2011-11-12T04:47:21.297 に答える