在Java中,可以使用Apache Commons CLI库来解析命令行参数,并且可以设置选项为可选的。以下是一个示例代码: ```java import org.apache.commons.cli.*; public class CommandLineParserExample { public static void main(String[] args) { Options options = new Options(); options.addOption("h", "help", false, "Print usage information"); CommandLineParser parser = new DefaultParser(); try { CommandLine cmd = parser.parse(options, args); if (cmd.hasOption("h")) { printUsage(); } else { // 执行其他操作 } } catch (ParseException e) { System.out.println("Invalid command line arguments: " + e.getMessage()); printUsage(); } } private static void printUsage() { HelpFormatter formatter = new HelpFormatter(); formatter.printHelp("java -jar yourjarfile.jar [options]", options); } } ``` 在上面的示例中,我们创建了一个`Options`对象,并添加了一个名为`help`的选项。然后,我们使用`DefaultParser`来解析命令行参数。如果用户指定了`-h`或`--help`选项,则打印用法信息。否则,执行其他操作。 如果解析器抛出`ParseException`异常,说明用户提供的命令行参数无效,我们可以捕获该异常并打印错误消息,然后调用`printUsage()`方法打印用法信息。 这样,即使用户只想打印用法时,也不会出现必需选项的解析器异常。