gpt4 book ai didi

java - List 作为 java 中的命令行参数

转载 作者:行者123 更新时间:2023-12-02 07:42:15 25 4
gpt4 key购买 nike

我想在 Java 中提供 3 个输入作为命令行参数:

  1. 输入文件位置
  2. configFileList
  3. 输出文件位置

但我无法理解如何将列表作为命令行争论给出。我尝试过这样的事情:

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:/inputinputFileLocationa.conf,b.conf,c.conf 是带有 分隔符的 configFileListD:/outputoutputFileLocation

最佳答案

命令行参数聚合成 String[]在 Java 中并传递到您的 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 的数组.

您有两个选择:

  1. 手动解析此args数组并手动将其拆开并自己处理每个元素。在这种情况下,您需要Arrays.asList(args[2].split(","));将其放入 List<String> 的第二个参数如你所愿。
  2. 使用类似 JSAP ( Java Simple Argument Parser ) 的内容让经过充分测试的成熟库为您解析、验证和格式化输入。 Specifically it can parse the second argument you are passing in for you.

不用说,我更喜欢第二种选择,因为第一种选择只是脆弱的忙碌工作。

关于java - List<String> 作为 java 中的命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11425973/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com