小编ano*_*non的帖子

Apache Commons CLI DefaultParser NoSuchMethod错误

我有一段Exception in thread "main" java.lang.NoSuchMethodError: org.apache.commons.cli.Options.hasShortOption(Ljava/lang/String;)Z时间试图创建一个实例DefaultParser.

我的代码:

    Options options = new Options();
    // option for day offset
    options.addOption(new Option("d", "day", true, "Day offset. -d 7 will 
    request for last weeks data"));
    //options.addOption("d", "day", true, "Day offset. -d 7 will request for last weeks data");

    CommandLineParser parser = new DefaultParser();
    CommandLine cmd = parser.parse(options, args);
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.commons.cli.Options.hasShortOption(Ljava/lang/String;)Z
    at org.apache.commons.cli.DefaultParser.handleShortAndLongOption(DefaultParser.java:491)
    at org.apache.commons.cli.DefaultParser.handleToken(DefaultParser.java:243)
    at org.apache.commons.cli.DefaultParser.parse(DefaultParser.java:120)
    at org.apache.commons.cli.DefaultParser.parse(DefaultParser.java:76)
    at org.apache.commons.cli.DefaultParser.parse(DefaultParser.java:60)
    at domain.Main.main(Main.java:60)
Run Code Online (Sandbox Code Playgroud)

第60行是这样的:

    CommandLine cmd …
Run Code Online (Sandbox Code Playgroud)

java apache-commons-cli

8
推荐指数
1
解决办法
1021
查看次数

弃用的 CSVWriter 构造函数

我正在使用OpenCSV创建充满数据库记录的 CSV 文件。我正在使用这个:

        CSVWriter writer = new CSVWriter(
            new OutputStreamWriter(new FileOutputStream("example.csv"),
                    StandardCharsets.UTF_8), ';');
Run Code Online (Sandbox Code Playgroud)

问题是,这个构造函数是@Deprecated.

该库有多个构造函数,但只有一个未被弃用。我正在使用这个构造函数:

/** @deprecated */
@Deprecated
public CSVWriter(Writer writer, char separator) {
    this(writer, separator, '"');
}
Run Code Online (Sandbox Code Playgroud)

虽然我应该使用这个:

public CSVWriter(Writer writer, char separator, char quotechar, char escapechar, String lineEnd) {
    super(writer, lineEnd);
    this.escapechar = escapechar;
    this.quotechar = quotechar;
    this.separator = separator;
}
Run Code Online (Sandbox Code Playgroud)

但是我不确定要在那里放什么,因为我不希望我的文件最终有所不同。

java opencsv

1
推荐指数
1
解决办法
2424
查看次数

标签 统计

java ×2

apache-commons-cli ×1

opencsv ×1