jshell tool: opinions sought -- double-dash long-form command-line options

Jonathan Gibbons jonathan.gibbons at oracle.com
Tue Aug 16 15:07:45 UTC 2016


Robert,

Strong input:  options that are common across tools should be the same 
across tools, for example, the set of module options. You're already 
suggesting that, so that's good.

Additional input: double-dash options are typically a short series of 
words separated by hyphens (instead of concatenated words), so that 
makes for --no-startup instead of --nostartup.

Note that double-dash options should allow '=' as a separator instead of 
white-space, as in --class-path=my:class:path
This is not typically spelled out in detail in command line help, but 
there is typically a footnote to that effect at the end of the help.

-- Jon

On 08/15/2016 10:35 PM, Robert Field wrote:
> We would like the jshell tool to roll-out using the more modern 
> double-dash options.  Note though that it will ship in the jdk/bin 
> directory where almost all commands use legacy option formats.
>
> Below I propose options for jshell, as this is not a black-and-white 
> decision, I'd very much like input....
>
> Current jshell options are --
>
>     -classpath <path>    Specify where to find user class files
>     -cp <path>           Specify where to find user class files
>     -startup <file>      One run replacement for the start-up definitions
>     -nostartup           Do not run the start-up definitions
>     -feedback <mode>     Specify the initial feedback mode. The mode 
> may be
>                          predefined (silent, concise, normal, or 
> verbose) or
>                          previously user-defined
>     -q                   Quiet feedback.  Same as: -feedback concise
>     -qq                  Really quiet feedback.  Same as: -feedback 
> silent
>     -v                   Verbose feedback.  Same as: -feedback verbose
>     -J<flag>             Pass <flag> directly to the runtime system.
>                          Use one -J for each runtime flag or flag 
> argument
>     -R<flag>             Pass <flag> to the remote runtime system.
>                          Use one -R for each remote flag or flag argument
>     -help                Print this synopsis of standard options
>     -version             Version information
>     -fullversion         Full Version information
>
> java options are mostly single-dash options, the current double-dash 
> options are --
>
>     -cp <class search path of directories and zip/jar files>
>     -classpath <class search path of directories and zip/jar files>
>     --class-path <class search path of directories and zip/jar files>
>                   A : separated list of directories, JAR archives,
>                   and ZIP archives to search for class files.
>     -p <module path>
>     --module-path <module path>...
>                   A : separated list of directories, each directory
>                   is a directory of modules.
>     --upgrade-module-path <module path>...
>                   A : separated list of directories, each directory
>                   is a directory of modules that replace upgradeable
>                   modules in the runtime image
>     -m <module>[/<mainclass>]
>     --module <modulename>[/<mainclass>]
>                   the initial module to resolve, and the name of the 
> main class
>                   to execute if not specified by the module
>     --add-modules <modulename>[,<modulename>...]
>                   root modules to resolve in addition to the initial 
> module.
>                   <modulename> can also be ALL-DEFAULT, ALL-SYSTEM,
>                   ALL-MODULE-PATH.
>     --limit-modules <modulename>[,<modulename>...]
>                   limit the universe of observable modules
>     --list-modules [<modulename>[,<modulename>...]]
>                   list the observable modules and exit
>     --dry-run     create VM but do not execute main method.
>                   This --dry-run option may be useful for validating the
>                   command-line options such as the module system 
> configuration.
>
> Of these, --class-path, --module-path, --add-modules, and maybe 
> --upgrade-module-path seem appropriate for jshell.
>
> Proposed for jshell --
>
>     -classpath <path>    Specify where to find user class files
>     -cp <path>
>     --class-path <path>
>
>     -p <module path>      directory of modules.
>     --module-path <module path>...
>
>     --upgrade-module-path <module path>...   directory of modules that 
> replace upgradeable modules
>
>     --add-modules <modulename>[,<modulename>...] root modules to resolve
>
>     --startup <file>      One run replacement for the start-up 
> definitions
>
>     --nostartup           Do not run the start-up definitions

Would be better as --no-startup

> -n
>
>     --feedback <mode>     Specify the initial feedback mode. The mode 
> may be
>                          predefined (silent, concise, normal, or 
> verbose) or
>                          previously user-defined
>
>     -q                   Quiet feedback.  Same as: --feedback concise
>
>     -qq                  Really quiet feedback.  Same as: --feedback 
> silent
>
>     -v                   Verbose feedback.  Same as: --feedback verbose
>
>     -J<flag>             Pass <flag> directly to the runtime system.
>
>     -R<flag>             Pass <flag> to the remote runtime system.
>
>     --help                Print this synopsis of standard options
>     -help
>     -h
>
>     -version             Version information
>     --version
>
>     -fullversion         Full Version information
>     --fullversion

?? --full-version ??
>
>
> Thanks,
> Robert
>



More information about the kulla-dev mailing list