web-dev-qa-db-ja.com

Javaコマンドライン引数

「a」が最初の文字列引数として入力されたかどうかを検出しようとしています。

23
burntsugar
public class YourClass {
    public static void main(String[] args) {
        if (args.length > 0 && args[0].equals("a")){
            //...
        }
    }
}
36
Björn

単一の引数を超えて拡張する場合は、 Apache commons cli を使用します。

「Apache Commons CLIライブラリは、プログラムに渡されるコマンドラインオプションを解析するためのAPIを提供します。コマンドラインツールで使用可能なオプションの詳細を示すヘルプメッセージを出力することもできます。」

Commons CLIは、さまざまなタイプのオプションをサポートしています。

  • POSIXのようなオプション(つまり、tar -zxvf foo.tar.gz)
  • GNU like longオプション(例:du --human-readable --max-depth = 1)
  • Javaのようなプロパティ(Java -Djava.awt.headless = true -Djava.net.useSystemProxies = true Foo)
  • 値が付加された短いオプション(例:gcc -O2 foo.c)
  • 単一のハイフンを含む長いオプション(例:ant -projecthelp)
39
John Ellinwood

すべてのJavaプログラムは

_public static void main(String[] args) {
_

String型の配列は、main()がパラメーターとして使用し、プログラムへのコマンドライン引数を保持します。ユーザーがプログラムを次のように実行する場合

_$ Java myProgram a
_

_args[0]_は文字列「a」を保持します。

17
Bill the Lizard

コマンドライン引数は、最初の_String[]_パラメーターでmain()に渡されます。

_public static void main( String[] args ) {
}
_

上記の例では、argsにはすべてのコマンドライン引数が含まれています。

提起された質問に対する短い、甘い答えは次のとおりです。

_public static void main( String[] args ) {
    if( args.length > 0 && args[0].equals( "a" ) ) {
        // first argument is "a"
    } else {
        // oh noes!?
    }
}
_
5
Rob

コマンドライン引数は、mainメソッドのString[] argsパラメーターを介してアクセスできます。

最初の引数では、args[0]を確認できます

コード全体は次のようになります

public static void main(String[] args) {
    if ("a".equals(args[0])) {
         // do something
    }
}
2
Jakub Arnold

mainメソッドにはString[]引数。これには、アプリケーションに渡された引数が含まれます(多くの場合、argsと呼ばれますが、これは必須ではありません)。

1
Joachim Sauer

値aを渡し、次のようなequalsメソッドを使用して比較してみてください。

public static void main(String str[]) {

    boolean b = str[0].equals("a");

    System.out.println(b);

}

Javaのコマンドライン引数 の詳細については、このリンクを参照してください

1
user2885596

他のみんなが言っているように... .equalsメソッドが必要です。

偶然にあなたは次のようなものを使用しました:

if(argv[0] == "a")

==は内容(論理的等価性)ではなく2つのオブジェクトの位置(物理的等価性)を比較するため、機能しません。

コマンドラインの「a」とプログラムのソースの「a」は2つの異なる場所に割り当てられているため、==は使用できません。 equalsメソッドを使用して、両方の文字列が同じ文字を持っていることを確認する必要があります。

別の注意...「a」==「a」は多くの場合機能します。これは、ストリングがJavaで特別であるためです。ただし、.equalsを使用したい時間の99.99999999999999%です。

0
TofuBeer

コマンドライン引数は、文字列としてString配列String[] args that is passed tomain() `に保存されます。

Java [program name] [arg1,arg2 ,..]

コマンドライン引数は、プログラムの実行中にコマンドプロンプトから受け付ける入力です。渡される引数は何でもかまいません。 args[]配列に保存されます。

//Display all command line information
         class ArgDemo{
            public static void main(String args[]){
            System.out.println("there are "+args.length+"command-line arguments.");
            for(int i=0;i<args.length;i++)
            System.out.println("args["+i+"]:"+args[i]);
    }
    }

例:

Java Argdemo one two

出力は次のようになります。

there are 2 command line arguments:
they are:
arg[0]:one
arg[1]:two
0
Prudhvi Bellam