package picocli.examples.completioncandidates; import picocli.CommandLine; import picocli.CommandLine.Parameters; import java.io.File; import java.util.Arrays; import java.util.Collections; import java.util.Iterator; public class FileCompleterDemo implements Runnable { @Parameters(arity = "1", description = "A file. Valid values in this directory: ${COMPLETION-CANDIDATES}", completionCandidates = FileCompleter.class) File file; public void run() { System.out.printf("You selected %s%n", file); } public static void main(String[] args) { new CommandLine(new FileCompleterDemo()).execute(args); } static class FileCompleter implements Iterable { @Override public Iterator iterator() { String[] files = new File(".").list(); return files == null ? Collections.emptyIterator() : Arrays.asList(files).iterator(); } } }