Backend API. Server-side code: this runs in a Codename One backend, not in the app on the device.

package com.codename1.cli

Command-line applications: picocli-style annotations that the build turns into a parser, with help, version, subcommands and exit codes.

A class annotated CommandLine.Command is a command; its fields annotated CommandLine.Option and CommandLine.Parameters receive the arguments. The build reads the annotations, generates the code that binds them and writes main, so a command-line tool is a module with commands and nothing else, and it compiles to a native executable for Linux, macOS and Windows like any backend.

The same commands work in a backend with controllers. There the server is the serve subcommand, and the command line with no arguments starts it as before, so maintenance tasks such as a migration or an administrator account ship in the server’s own binary.

Types

class ArgSpecWhat an option and a positional parameter have in common.
interface CommandBindingThe code the build generates for one @Command class, through which the parser creates the command, sets its fields and runs it without reflection.
class CommandLineParses a command line into an annotated command and runs it.
class CommandSpecThe model of one command: its name, help text, options, positional parameters and subcommands.
class ConsoleWhat a command needs to know about the terminal it writes to.
class OptionSpecThe model of one option, written by the build from an CommandLine.Option.
class PositionalParamSpecThe model of one positional parameter, written by the build from a CommandLine.Parameters.