0

Javaでコマンドライン引数として3つの入力を与えたい:

  1. inputFileLocation
  2. configFileList
  3. outputFileLocation

しかし、コマンドライン引数としてリストを与える方法を理解できません。私はこのようなことを試しました:

public class BatchLauncher {
    public static void main(String[] args) {
        int argc = 0;
        String inputFileLocation = argc < args.length ? args[argc++] : null;
        String configFileList = argc < args.length ? args[argc++] : null;
        String outputFileLocation = argc < args.length ? args[argc++] : null;
        CaptureBatch captureBatch = new CaptureBatch();
        captureBatch.setInputFileLocation(inputFileLocation);
        captureBatch.setConfigFileList(configFileList);
        captureBatch.setOutputFileLocation(outputFileLocation);
    }
}

でコンパイル時エラーが発生しcaptureBatch.setConfigFileList(configFileList);ます。

入力は次のように与えられます:

D:/input a.conf,b.conf,c.conf D:/output

D:/input、はセパレータ 付きinputFileLocation、 はです。a.conf,b.conf,c.confconfigFileList,D:/outputoutputFileLocation

4

2 に答える 2

1

コマンドライン引数は in Java に集約され、未処理String[]に渡されます。main

public static void main(final String[] args) { // code }

D:/input a.conf,b.conf,c.conf D:/outputの値の入力例では、 の配列を区切る場所にargsなります。["D:/input", "a.conf,b.conf,c.conf", "D:/output"][]String

次の 2 つのオプションがあります。

  1. この配列を手動で解析し、args手動で引き離して、各要素を自分で処理します。この場合、必要に応じてArrays.asList(args[2].split(","));に取得するには、2 番目の引数が必要List<String>です。
  2. JSAP ( Java Simple Argument Parser )のようなものを使用して、十分にテストされ成熟したライブラリに入力を解析、検証、およびフォーマットしてもらいます。具体的には、渡された 2 番目の引数を解析できます。

言うまでもなく、私は 2 番目のオプションを好みます。

于 2012-07-11T05:21:59.370 に答える
1
public static void main(String[] args) {
    int argc = 0;
    if(args.length>2){
    String inputFileLocation = args[0];
    String configFileList = args[1];
    String outputFileLocation = args[2];

    List<String> lList=Arrays.asList(configFileList.split(","));
    System.out.println(inputFileLocation);
    System.out.println(lList);
    System.out.println(outputFileLocation);
    }
}

出力:

D:/入力

[a.conf、b.conf、c.conf]

D:/出力

于 2012-07-11T05:39:40.277 に答える