0

これはあなたにとっては簡単かもしれませんが、私は Java が初めてなので、次の部分で実際に何が起こっているのか知りたいですか?

if (args.length > 0) {
    file = args[0];
}


public class DomTest1 {
    public static void main(String[] args) {
        String file = "test1.xml";
        if (args.length > 0) {
            file = args[0];
        }
    }
}
4

6 に答える 6

9

これらは コマンド ライン引数 と呼ばれ、プログラムで String 配列として取得します。オラクルのチュートリアルはこちら

Java アプリケーションは、コマンド ラインから任意の数の引数を受け入れることができます。これにより、ユーザーはアプリケーションの起動時に構成情報を指定できます。

ユーザーは、アプリケーションを呼び出すときにコマンドライン引数を入力し、実行するクラスの名前の後に指定します。

したがって、以下のコード:

String file = "test1.xml";
if (args.length > 0) {
   file = args[0];
}

の長さString[] argsが より大きい0かどうかを確認します。つまり、コマンド ライン引数が入力されたかどうか、または配列が空かどうかを確認します。コマンド ライン引数が入力された場合はfile、その配列の最初の要素を割り当てます。それ以外の場合は、デフォルトfiletest1.xml. クラスを次のように実行できます。

java DomTest1  someFileName.someExtension

アプリケーションが起動されると、ランタイム システムはコマンドライン引数を文字列の配列を介してアプリケーションのメイン メソッドに渡します。前の例では、単一の文字列"someFileName.someExtension"を含む配列でDomTest1アプリケーションに渡されたコマンドライン引数です。

于 2013-07-02T10:31:38.890 に答える
1

ここで文字列参照を作成し、値を入れます。最初の値は > test1.xml です。ファイルの名前ですが、文字列として文字列に入れています(「test1.xml」を意味します)。コマンドライン引数から値を取得します。コマンドラインロケーション0で文字列参照の値をオーバーライドするため、値を渡さない場合、参照値は常にコマンドライン0ロケーション値になり、text1.xmlが得られます

于 2013-07-02T10:50:04.503 に答える
1

args はコマンドライン引数の配列です

アプリケーションが起動されると、ランタイム システムは文字列の配列を介してアプリケーションのメイン メソッドにコマンドライン引数を渡します。

where args配列で、 if (args.length > 0) は配列が空かどうかをチェックする条件です。

于 2013-07-02T10:31:43.327 に答える
1

このmain()メソッドは、Java プログラムの実行が開始される場所です。main() メソッドに渡されるすべてのパラメーターが String である場所args[]です。基本的に文字列配列です。変数名は、のみを使用する以外の何かに変更できます。args文字列var[]または `String datas[] などを使用できます。

ifさて、あなたのプログラムの条件チェックに来ますif (args.length > 0)。なぜarg.lengthそうなのかという根本的なことを説明します。

コマンドラインまたは同様の端末から Java プログラムを実行すると、 java customNameとして実行されます。Javaプログラムに渡したいパラメータをjava customName param1 param2としましょう。引数はコマンド ラインとともに渡されます。Java のインタープリターがこれらのパラメーター (つまり、param1 param2) を解釈し、プログラムの main() メソッドに渡します。これらのパラメータはargs[]文字列配列に格納されます。

Java プログラムの実行中に args[0] および args[1] が許可されます。引数が渡されない場合、args[] の値は null になり、null パラメータ (要素なし) を持つ文字列配列オブジェクトとして識別されます。 . その場合、args.lengthは 0 になります。

于 2016-09-09T06:23:03.123 に答える
0

その行は、引数が実際にコマンド ラインに入力されたかどうかを確認しています。

いずれかが入力された場合、最初のものはファイルの名前です。

何も入力されていない場合test1.xmlは、デフォルトです。

于 2013-07-02T10:32:04.110 に答える
0

args.length 値は、args 配列内のアイテムの数です。

コマンドライン引数を渡さないと、常に「コマンドライン引数がありません」というメッセージが表示されます。

それがあなたがチェックする理由です

if (args.length > 0) 

しかし、次のようにプログラムを実行してみてください: java PrintArgs hello my name is mikki2 Java PrintArgs の後の単語は、コマンド ラインからプログラムに渡される引数であるため、コマンド ライン引数と呼ばれます。

于 2013-07-02T10:36:35.173 に答える