Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
JSHELL(1)			 JDK Commands			     JSHELL(1)

NAME
       jshell  -  interactively	evaluate declarations, statements, and expres-
       sions of	the Java programming language in a read-eval-print loop	(REPL)

SYNOPSIS
       jshell [options]	[load-files]

       options
	      Command-line options, separated  by  spaces.   See  Options  for
	      jshell.

       load-files
	      One  or  more  scripts to	run when the tool is started.  Scripts
	      can contain any valid code snippets or JShell commands.

	      The script can be	a local	file or	one  of	 following  predefined
	      scripts:

	      DEFAULT
		     Loads the default entries,	which are commonly used	as im-
		     ports.

	      JAVASE Imports all Java SE packages.

	      PRINTING
		     Defines print, println, and printf	as jshell methods  for
		     use within	the tool.

	      For  more	 than  one  script, use	a space	to separate the	names.
	      Scripts are run in the order in which  they're  entered  on  the
	      command  line.   Command-line  scripts  are  run	after  startup
	      scripts.	To run a script	after JShell is	started, use the /open
	      command.

	      To accept	input from standard input and suppress the interactive
	      I/O, enter a hyphen (-) for load-files.  This option enables the
	      use of the jshell	tool in	pipe chains.

DESCRIPTION
       JShell  provides	 a  way	to interactively evaluate declarations,	state-
       ments, and expressions of the Java programming language,	making it eas-
       ier to learn the	language, explore unfamiliar code and APIs, and	proto-
       type complex code.  Java	statements, variable definitions, method defi-
       nitions,	 class definitions, import statements, and expressions are ac-
       cepted.	The bits of code entered are called snippets.

       As snippets are entered,	they're	evaluated, and feedback	 is  provided.
       Feedback	 varies	 from the results and explanations of actions to noth-
       ing, depending on the snippet entered and  the  feedback	 mode  chosen.
       Errors  are  described regardless of the	feedback mode.	Start with the
       verbose mode to get the most feedback while learning the	tool.

       Command-line options are	available for configuring the initial environ-
       ment when JShell	is started.  Within JShell, commands are available for
       modifying the environment as needed.

       Existing	snippets can be	loaded from a file to initialize a JShell ses-
       sion, or	at any time within a session.  Snippets	can be modified	within
       the session to try out different	variations and make  corrections.   To
       keep snippets for later use, save them to a file.

OPTIONS	FOR JSHELL
       --add-modules module[,module...]
	      Specifies	the root modules to resolve in addition	to the initial
	      module.

       -Cflag Provides a flag to pass to the compiler.	To pass	more than  one
	      flag,  provide  an instance of this option for each flag or flag
	      argument needed.

       --class-path path
	      Specifies	the directories	and archives that are searched to  lo-
	      cate  class files.  This option overrides	the path in the	CLASS-
	      PATH environment variable.  If the  environment  variable	 isn't
	      set  and	this  option isn't used, then the current directory is
	      searched.	 For Oracle Solaris, Linux, and	macOS, use a colon (:)
	      to separate items	in the path.  For Windows, use a semicolon (;)
	      to separate items.

       --feedback mode
	      Sets the initial level  of  feedback  provided  in  response  to
	      what's  entered.	 The  initial level can	be overridden within a
	      session by using the /set	feedback mode command.	The default is
	      normal.

	      The following values are valid for mode:

	      verbose
		     Provides  detailed	 feedback for entries.	Additional in-
		     formation about the action	performed is  displayed	 after
		     the  result  of the action.  The next prompt is separated
		     from the feedback by a blank line.

	      normal Provides an average amount	of feedback.  The next	prompt
		     is	separated from the feedback by a blank line.

	      concise
		     Provides  minimal	feedback.  The next prompt immediately
		     follows the code snippet or feedback.

	      silent Provides no feedback.  The	next prompt  immediately  fol-
		     lows the code snippet.

	      custom Provides  custom  feedback	 based	on how the mode	is de-
		     fined.  Custom feedback modes are created	within	JShell
		     by	using the /set mode command.

       --help or -h or -?
	      Prints a summary of standard options and exits the tool.

       --help-extra or -X
	      Prints  a	 summary  of  nonstandard  options and exits the tool.
	      Nonstandard options are subject to change	without	notice.

       -Jflag Provides a flag to pass to the runtime  system.	To  pass  more
	      than  one	flag, provide an instance of this option for each flag
	      or flag argument needed.

       --module-path modulepath
	      Specifies	where to find application  modules.   For  Oracle  So-
	      laris,  Linux,  and  macOS, use a	colon (:) to separate items in
	      the path.	 For Windows, use a semicolon (;) to separate items.

       --no-startup
	      Prevents startup scripts from running when JShell	 starts.   Use
	      this  option to run only the scripts entered on the command line
	      when JShell is started, or to start JShell without any preloaded
	      information  if  no  scripts  are	entered.  This option can't be
	      used if the --startup option is used.

       -q     Sets the feedback	mode to	concise, which is the same as entering
	      --feedback concise.

       -Rflag Provides	a  flag	to pass	to the remote runtime system.  To pass
	      more than	one flag, provide an instance of this option for  each
	      flag or flag argument to pass.

       -s     Sets  the	feedback mode to silent, which is the same as entering
	      --feedback silent.

       --show-version
	      Prints version information and enters the	tool.

       --startup file
	      Overrides	the default startup  script  for  this	session.   The
	      script can contain any valid code	snippets or commands.

	      The  script  can	be a local file	or one of the following	prede-
	      fined scripts:

	      DEFAULT
		     Loads the default entries,	which are commonly used	as im-
		     ports.

	      JAVASE Imports all Java SE packages.

	      PRINTING
		     Defines  print, println, and printf as jshell methods for
		     use within	the tool.

	      For more than one	script,	provide	a separate  instance  of  this
	      option  for each script.	Startup	scripts	are run	when JShell is
	      first started and	when the session is restarted with the /reset,
	      /reload,	or /env	command.  Startup scripts are run in the order
	      in which they're entered on the command line.

	      This option can't	be used	if the --no-startup option is used.

       -v     Sets the feedback	mode to	verbose, which is the same as entering
	      --feedback verbose.

       --version
	      Prints version information and exits the tool.

JSHELL COMMANDS
       Within the jshell tool, commands	are used to modify the environment and
       manage code snippets.

       /drop {name|id|startID-endID} [{name|id|startID-endID}...]
	      Drops snippets identified	by name, ID, or	ID range, making  them
	      inactive.	  For a	range of IDs, provide the starting ID and end-
	      ing ID separated with a hyphen.  To provide a list, separate the
	      items  in	 the  list with	a space.  Use the /list	command	to see
	      the IDs of code snippets.

       /edit [option]
	      Opens an editor.	If no option is	entered, then the editor opens
	      with the active snippets.

	      The following options are	valid:

	      {name|id|startID-endID} [{name|id|startID-endID}...]
		     Opens  the	 editor	 with the snippets identified by name,
		     ID, or ID range.  For a range of IDs, provide the	start-
		     ing ID and	ending ID separated with a hyphen.  To provide
		     a list, separate the items	in the list with a space.  Use
		     the /list command to see the IDs of code snippets.

	      -all   Opens  the	 editor	 with  all snippets, including startup
		     snippets and snippets that	failed,	were  overwritten,  or
		     were dropped.

	      -start Opens the editor with startup snippets that were evaluat-
		     ed	when JShell was	started.

	      To exit edit mode, close the editor window, or  respond  to  the
	      prompt provided if the -wait option was used when	the editor was
	      set.

	      Use the /set editor command to specify the editor	to use.	 If no
	      editor  is  set,	then  the  following environment variables are
	      checked in order:	JSHELLEDITOR, VISUAL, and EDITOR.  If no  edi-
	      tor  is  set  in JShell and none of the editor environment vari-
	      ables is set, then a simple default editor is used.

       /env [options]
	      Displays the environment settings, or  updates  the  environment
	      settings	and  restarts  the  session.  If no option is entered,
	      then the current environment settings are	displayed.  If one  or
	      more  options are	entered, then the session is restarted as fol-
	      lows:

	      o	Updates	the environment	settings with the provided options.

	      o	Resets the execution state.

	      o	Runs the startup scripts.

	      o	Silently replays the history in	the order entered.  The	histo-
		ry  includes  all  valid snippets or /drop commands entered at
		the jshell prompt, in scripts entered on the command line,  or
		scripts	entered	with the /open command.

	      Environment  settings  entered  on  the command line or provided
	      with a previous /reset, /env, or /reload command are  maintained
	      unless an	option is entered that overwrites the setting.

	      The following options are	valid:

	      --add-modules module[,module...]
		     Specifies	the root modules to resolve in addition	to the
		     initial module.

	      --add-exports   source-module/package=target-module[,target-mod-
	      ule]*
		     Adds  an  export  of  package  from source-module to tar-
		     get-module.

	      --class-path path
		     Specifies the directories and archives that are  searched
		     to	locate class files.  This option overrides the path in
		     the CLASSPATH environment variable.  If  the  environment
		     variable  isn't  set and this option isn't	used, then the
		     current directory is searched.  For Oracle	Solaris,  Lin-
		     ux,  and  macOS, use a colon (:) to separate items	in the
		     path.  For	Windows,  use  a  semicolon  (;)  to  separate
		     items.

	      --module-path modulepath
		     Specifies	where to find application modules.  For	Oracle
		     Solaris, Linux, and macOS,	use a colon  (:)  to  separate
		     items  in	the path.  For Windows,	use a semicolon	(;) to
		     separate items.

       /exit [integer-expression-snippet]
	      Exits the	tool.  If no snippet is	entered, the  exit  status  is
	      zero.   If a snippet is entered and the result of	the snippet is
	      an integer, the result is	used as	the exit status.  If an	 error
	      occurs, or the result of the snippet is not an integer, an error
	      is displayed and the tool	remains	active.

       /history
	      Displays what was	entered	in this	session.

       /help [command|subject]
	      Displays information about commands and subjects.	 If no options
	      are  entered, then a summary of information for all commands and
	      a	list of	available subjects are displayed.  If a	valid  command
	      is  provided, then expanded information for that command is dis-
	      played.  If a valid subject is entered, then  information	 about
	      that subject is displayed.

	      The following values for subject are valid:

	      context
		     Describes	the options that are available for configuring
		     the environment.

	      intro  Provides an introduction to the tool.

	      shortcuts
		     Describes keystrokes for completing  commands  and	 snip-
		     pets.  See	Input Shortcuts.

       /imports
	      Displays	the  current  active imports, including	those from the
	      startup scripts and scripts that were  entered  on  the  command
	      line when	JShell was started.

       /list [option]
	      Displays	a list of snippets and their IDs.  If no option	is en-
	      tered, then all active snippets are displayed, but startup snip-
	      pets aren't.

	      The following options are	valid:

	      {name|id|startID-endID} [{name|id|startID-endID}...]
		     Displays  the  snippets  identified  by  name,  ID, or ID
		     range.  For a range of IDs, provide the starting  ID  and
		     ending  ID	 separated  with a hyphen.  To provide a list,
		     separate the items	in the list with a space.

	      -all   Displays all snippets,  including	startup	 snippets  and
		     snippets  that failed, were overwritten, or were dropped.
		     IDs that begin with s are startup snippets.  IDs that be-
		     gin with e	are snippets that failed.

	      -start Displays startup snippets that were evaluated when	JShell
		     was started.

       /methods	[option]
	      Displays information about the methods that were entered.	 If no
	      option  is  entered,  then the name, parameter types, and	return
	      type of all active methods are displayed.

	      The following options are	valid:

	      {name|id|startID-endID} [{name|id|startID-endID}...]
		     Displays information for methods identified by name,  ID,
		     or	ID range.  For a range of IDs, provide the starting ID
		     and ending	ID separated with  a  hyphen.	To  provide  a
		     list,  separate  the items	in the list with a space.  Use
		     the /list command to see the IDs of code snippets.

	      -all   Displays information for  all  methods,  including	 those
		     added  when  JShell was started, and methods that failed,
		     were overwritten, or were dropped.

	      -start Displays information for startup methods that were	 added
		     when JShell was started.

       /open file
	      Opens the	script specified and reads the snippets	into the tool.
	      The script can be	a local	file or	one of	the  following	prede-
	      fined scripts:

	      DEFAULT
		     Loads the default entries,	which are commonly used	as im-
		     ports.

	      JAVASE Imports all Java SE packages.

	      PRINTING
		     Defines print, println, and printf	as jshell methods  for
		     use within	the tool.

       /reload [options]
	      Restarts the session as follows:

	      o	Updates	the environment	settings with the provided options, if
		any.

	      o	Resets the execution state.

	      o	Runs the startup scripts.

	      o	Replays	the history in the order  entered.   The  history  in-
		cludes	all  valid  snippets  or /drop commands	entered	at the
		jshell prompt, in scripts entered  on  the  command  line,  or
		scripts	entered	with the /open command.

	      Environment  settings  entered  on  the command line or provided
	      with a previous /reset, /env, or /reload command are  maintained
	      unless an	option is entered that overwrites the setting.

	      The following options are	valid:

	      --add-modules module[,module...]
		     Specifies	the root modules to resolve in addition	to the
		     initial module.

	      --add-exports   source-module/package=target-module[,target-mod-
	      ule]*
		     Adds  an  export  of  package  from source-module to tar-
		     get-module.

	      --class-path path
		     Specifies the directories and archives that are  searched
		     to	locate class files.  This option overrides the path in
		     the CLASSPATH environment variable.  If  the  environment
		     variable  isn't  set and this option isn't	used, then the
		     current directory is searched.  For Oracle	Solaris,  Lin-
		     ux,  and  macOS, use a colon (:) to separate items	in the
		     path.  For	Windows,  use  a  semicolon  (;)  to  separate
		     items.

	      --module-path modulepath
		     Specifies	where to find application modules.  For	Oracle
		     Solaris, Linux, and macOS,	use a colon  (:)  to  separate
		     items  in	the path.  For Windows,	use a semicolon	(;) to
		     separate items.

	      -quiet Replays the valid history without displaying it.	Errors
		     are displayed.

	      -restore
		     Resets  the  environment to the state at the start	of the
		     previous run of the tool or to the	last  time  a  /reset,
		     /reload,  or  /env	 command  was executed in the previous
		     run.  The valid history since  that  point	 is  replayed.
		     Use this option to	restore	a previous JShell session.

       /reset [options]
	      Discards	all  entered snippets and restarts the session as fol-
	      lows:

	      o	Updates	the environment	settings with the provided options, if
		any.

	      o	Resets the execution state.

	      o	Runs the startup scripts.

	      History is not replayed.	All code that was entered is lost.

	      Environment  settings  entered  on  the command line or provided
	      with a previous /reset, /env, or /reload command are  maintained
	      unless an	option is entered that overwrites the setting.

	      The following options are	valid:

	      --add-modules module[,module...]
		     Specifies	the root modules to resolve in addition	to the
		     initial module.

	      --add-exports   source-module/package=target-module[,target-mod-
	      ule]*
		     Adds  an  export  of  package  from source-module to tar-
		     get-module.

	      --class-path path
		     Specifies the directories and archives that are  searched
		     to	locate class files.  This option overrides the path in
		     the CLASSPATH environment variable.  If  the  environment
		     variable  isn't  set and this option isn't	used, then the
		     current directory is searched.  For Oracle	Solaris,  Lin-
		     ux,  and  macOS, use a colon (:) to separate items	in the
		     path.  For	Windows,  use  a  semicolon  (;)  to  separate
		     items.

	      --module-path modulepath
		     Specifies	where to find application modules.  For	Oracle
		     Solaris, Linux, and macOS,	use a colon  (:)  to  separate
		     items  in	the path.  For Windows,	use a semicolon	(;) to
		     separate items.

       /save [options] file
	      Saves snippets and commands to the file specified.   If  no  op-
	      tions are	entered, then active snippets are saved.

	      The following options are	valid:

	      {name|id|startID-endID} [{name|id|startID-endID}...]
		     Saves  the	 snippets and commands identified by name, ID,
		     or	ID range.  For a range of IDs, provide the starting ID
		     and  ending  ID  separated	 with  a hyphen.  To provide a
		     list, separate the	items in the list with a  space.   Use
		     the /list command to see the IDs of the code snippets.

	      -all   Saves  all	snippets, including startup snippets and snip-
		     pets that were overwritten	or failed.

	      -history
		     Saves the sequential history of all commands and snippets
		     entered in	the current session.

	      -start Saves  the	 current  startup  settings.   If  no  startup
		     scripts were provided, then an empty file is saved.

       /set [setting]
	      Sets configuration information, including	the  external  editor,
	      startup  settings, and feedback mode.  This command is also used
	      to create	a custom feedback mode with customized prompt, format,
	      and  truncation values.  If no setting is	entered, then the cur-
	      rent setting for the editor, startup settings, and feedback mode
	      are displayed.

	      The following values are valid for setting:

	      editor [options] [command]
		     Sets  the	command	 used to start an external editor when
		     the /edit command is entered.  The	 command  can  include
		     command  arguments	separated by spaces.  If no command or
		     options are entered, then the  current  setting  is  dis-
		     played.

		     The following options are valid:

		     -default
			    Sets  the  editor  to  the default editor provided
			    with JShell.  This option can't be used if a  com-
			    mand for starting an editor	is entered.

		     -delete
			    Sets the editor to the one in effect when the ses-
			    sion started.  If used with	 the  -retain  option,
			    then  the  retained	 editor	setting	is deleted and
			    the	editor is set to the first  of	the  following
			    environment	variables found: JSHELLEDITOR, VISUAL,
			    or EDITOR.	If  none  of  the  editor  environment
			    variables  are set,	then this option sets the edi-
			    tor	to the default editor.

			    This option	can't be used if a command for	start-
			    ing	an editor is entered.

		     -retain
			    Saves  the	editor setting across sessions.	 If no
			    other option or a command  is  entered,  then  the
			    current setting is saved.

		     -wait  Prompts  the user to indicate when editing is com-
			    plete.  Otherwise control returns to  JShell  when
			    the	 editor	 exits.	 Use this option if the	editor
			    being used exits immediately, for example, when an
			    edit  window already exists.  This option is valid
			    only when a	command	for starting an	editor is  en-
			    tered.

	      feedback [mode]
		     Sets  the	feedback mode used to respond to input.	 If no
		     mode is entered, then the current mode is displayed.

		     The following modes are valid: concise,  normal,  silent,
		     verbose,  and  any	custom mode created with the /set mode
		     command.

	      format mode field	"format-string"	selector
		     Sets the format of	the feedback provided in  response  to
		     input.   If  no mode is entered, then the current formats
		     for all fields for	all feedback modes are displayed.   If
		     only a mode is entered, then the current formats for that
		     mode are displayed.  If only a mode  and  field  are  en-
		     tered,  then  the current formats for that	field are dis-
		     played.

		     To	define a format, the following arguments are required:

		     mode   Specifies a	feedback mode to  which	 the  response
			    format is applied.	Only custom modes created with
			    the	/set mode command can be modified.

		     field  Specifies a	context-specific field	to  which  the
			    response  format  is  applied.  The	fields are de-
			    scribed in the online help,	which is accessed from
			    JShell using the /help /set	format command.

		     "format-string"
			    Specifies the string to use	as the response	format
			    for	the specified field and	selector.  The	struc-
			    ture  of the format	string is described in the on-
			    line help, which is	accessed from JShell using the
			    /help /set format command.

		     selector
			    Specifies the context in which the response	format
			    is applied.	 The selectors are  described  in  the
			    online  help,  which is accessed from JShell using
			    the	/help /set format command.

	      mode [mode-name] [existing-mode] [options]
		     Creates a custom feedback mode with the mode name provid-
		     ed.   If  no  mode	name is	entered, then the settings for
		     all modes are displayed, which includes the mode, prompt,
		     format,  and  truncation settings.	 If the	name of	an ex-
		     isting mode is provided, then the settings	from  the  ex-
		     isting mode are copied to the mode	being created.

		     The following options are valid:

		     -command|-quiet
			    Specifies the level	of feedback displayed for com-
			    mands when using the mode.	 This  option  is  re-
			    quired  when  creating a feedback mode.  Use -com-
			    mand to show information and verification feedback
			    for	 commands.   Use -quiet	to show	only essential
			    feedback for commands, such	as error messages.

		     -delete
			    Deletes the	named feedback mode for	this  session.
			    The	 name  of  the mode to delete is required.  To
			    permanently	delete a retained mode,	use  the  -re-
			    tain  option  with	this option.  Predefined modes
			    can't be deleted.

		     -retain
			    Saves the named  feedback  mode  across  sessions.
			    The	name of	the mode to retain is required.

		     Configure	the  new  feedback mode	using the /set prompt,
		     /set format, and /set truncation commands.

		     To	start using the	new mode, use the  /set	feedback  com-
		     mand.

	      prompt mode "prompt-string" "continuation-prompt-string"
		     Sets  the prompts for input within	JShell.	 If no mode is
		     entered, then the current prompts for all feedback	 modes
		     are  displayed.  If only a	mode is	entered, then the cur-
		     rent prompts for that mode	are displayed.

		     To	define a prompt, the following arguments are required:

		     mode   Specifies the feedback mode	to which  the  prompts
			    are	 applied.   Only custom	modes created with the
			    /set mode command can be modified.

		     "prompt-string"
			    Specifies the string to use	as the prompt for  the
			    first line of input.

		     "continuation-prompt-string"
			    Specifies  the string to use as the	prompt for the
			    additional input lines needed to complete a	 snip-
			    pet.

	      start [-retain] [file [file...]|option]
		     Sets  the names of	the startup scripts used when the next
		     /reset, /reload, or /env command  is  entered.   If  more
		     than  one	script is entered, then	the scripts are	run in
		     the order entered.	 If no scripts or options are entered,
		     then the current startup settings are displayed.

		     The  scripts  can	be local files or one of the following
		     predefined	scripts:

		     DEFAULT
			    Loads the default entries, which are commonly used
			    as imports.

		     JAVASE Imports all	Java SE	packages.

		     PRINTING
			    Defines print, println, and	printf as jshell meth-
			    ods	for use	within the tool.

		     The following options are valid:

		     -default
			    Sets the startup settings to the default settings.

		     -none  Specifies that no startup settings are used.

		     Use the -retain option to save the	start  setting	across
		     sessions.

	      truncation mode length selector
		     Sets the maximum length of	a displayed value.  If no mode
		     is	entered, then the current truncation  values  for  all
		     feedback modes are	displayed.  If only a mode is entered,
		     then the current truncation values	for that mode are dis-
		     played.

		     To	 define	truncation values, the following arguments are
		     required:

		     mode   Specifies the feedback mode	to which  the  trunca-
			    tion  value	is applied.  Only custom modes created
			    with the /set mode command can be modified.

		     length Specifies the unsigned integer to use as the maxi-
			    mum	length for the specified selector.

		     selector
			    Specifies the context in which the truncation val-
			    ue is applied.  The	selectors are described	in the
			    online  help,  which is accessed from JShell using
			    the	/help /set truncation command.

       /types [option]
	      Displays classes,	interfaces, and	enums that were	 entered.   If
	      no  option  is  entered, then all	current	active classes,	inter-
	      faces, and enums are displayed.

	      The following options are	valid:

	      {name|id|startID-endID} [{name|id|startID-endID}...]
		     Displays information for classes, interfaces,  and	 enums
		     identified	by name, ID, or	ID range.  For a range of IDs,
		     provide the starting ID and ending	ID  separated  with  a
		     hyphen.   To  provide  a  list, separate the items	in the
		     list with a space.	 Use the /list command to see the  IDs
		     of	the code snippets.

	      -all   Displays  information  for	 all  classes, interfaces, and
		     enums, including those added when JShell was started, and
		     classes,  interfaces,  and	 enums that failed, were over-
		     written, or were dropped.

	      -start Displays information for startup classes, interfaces, and
		     enums that	were added when	JShell was started.

       /vars [option]
	      Displays	the  name,  type, and value of variables that were en-
	      tered.  If no option is entered, then all	current	 active	 vari-
	      ables are	displayed.

	      The following options are	valid:

	      {name|id|startID-endID} [{name|id|startID-endID}...]
		     Displays  information  for	 variables identified by name,
		     ID, or ID range.  For a range of IDs, provide the	start-
		     ing ID and	ending ID separated with a hyphen.  To provide
		     a list, separate the items	in the list with a space.  Use
		     the /list command to see the IDs of the code snippets.

	      -all   Displays  information  for	all variables, including those
		     added when	JShell was started, and	variables that failed,
		     were overwritten, or were dropped.

	      -start Displays  information  for	 startup  variables  that were
		     added when	JShell was started.

       /?     Same as the /help	command.

       /!     Reruns the last snippet.

       /{name|id|startID-endID}	[{name|id|startID-endID}...]
	      Reruns the snippets identified by	ID, range  of  IDs,  or	 name.
	      For  a range of IDs, provide the starting	ID and ending ID sepa-
	      rated with a hyphen.  To provide a list, separate	the  items  in
	      the list with a space.  The first	item in	the list must be an ID
	      or ID range.  Use	the /list command to see the IDs of  the  code
	      snippets.

       /-n    Reruns the -nth previous snippet.	 For example, if 15 code snip-
	      pets were	entered, then /-4 runs	the  11th  snippet.   Commands
	      aren't included in the count.

INPUT SHORTCUTS
       The  following  shortcuts are available for entering commands and snip-
       pets in JShell.

   Tab completion
       <tab>  When entering snippets,  commands,  subcommands,	command	 argu-
	      ments, or	command	options, use the Tab key to automatically com-
	      plete the	item.  If the item can't be determined from  what  was
	      entered, then possible options are provided.

	      When  entering  a	 method	call, use the Tab key after the	method
	      call's opening parenthesis to see	the parameters for the method.
	      If  the  method has more than one	signature, then	all signatures
	      are displayed.  Pressing the Tab key a second time displays  the
	      description  of the method and the parameters for	the first sig-
	      nature.  Continue	pressing the Tab key for a description of  any
	      additional signatures.

       Shift+<Tab> V
	      After  entering  a complete expression, use this key sequence to
	      convert the expression to	a variable declaration of a  type  de-
	      termined by the type of the expression.

       Shift+<Tab> M
	      After  entering a	complete expression or statement, use this key
	      sequence to convert the expression or statement to a method dec-
	      laration.	 If an expression is entered, the return type is based
	      on the type of the expression.

       Shift+<Tab> I
	      When an identifier is entered that can't be resolved,  use  this
	      key sequence to show possible imports that resolve the identifi-
	      er based on the content of the specified class path.

   Command abbreviations
       An abbreviation of a command is accepted	if the	abbreviation  uniquely
       identifies  a command.  For example, /l is recognized as	the /list com-
       mand.  However, /s isn't	a valid	abbreviation because it	can't  be  de-
       termined	 if  the /set or /save command is meant.  Use /se for the /set
       command or /sa for the /save command.

       Abbreviations are also accepted for subcommands,	command	arguments, and
       command options.	 For example, use /m -a	to display all methods.

   History navigation
       A  history  of what was entered is maintained across sessions.  Use the
       up and down arrows to scroll through commands  and  snippets  from  the
       current	and  past sessions.  Use the Ctrl key with the up and down ar-
       rows to skip all	but the	first line of multiline	snippets.

   History search
       Use the Ctrl+R key combination to search	the history for	the string en-
       tered.	The  prompt  changes to	show the string	and the	match.	Ctrl+R
       searches	backwards from the current location  in	 the  history  through
       earlier	entries.  Ctrl+S searches forward from the current location in
       the history though later	entries.

INPUT EDITING
       The editing capabilities	of JShell are similar to that of other	common
       shells.	Keyboard keys and key combinations provide line	editing	short-
       cuts.  The Ctrl key and Meta key	are used in key	combinations.  If your
       keyboard	 doesn't  have a Meta key, then	the Alt	key is often mapped to
       provide Meta key	functionality.

       Key or Key Combination	Action
       ----------------------------------------------------
       Return			Enter the current line.
       Left arrow		Move  the  cursor  to  the
				left one character.
       Right arrow		Move  the  cursor  to  the
				right one character.
       Ctrl+A			Move the cursor	to the be-
				ginning	of the line.
       Ctrl+E			Move the cursor	to the end
				of the line.
       Meta+B			Move  the  cursor  to  the
				left one word.
       Meta+F			Move  the  cursor  to  the
				right one word.
       Delete			Delete the character under
				the cursor.
       Backspace		Delete	the  character be-
				fore the cursor.
       Ctrl+K			Delete the text	 from  the
				cursor	to  the	end of the
				line.
       Meta+D			Delete the text	 from  the
				cursor	to  the	end of the
				word.
       Ctrl+W			Delete the text	 from  the
				cursor	 to  the  previous
				white space.
       Ctrl+Y			Paste  the  most  recently
				deleted	  text	 into  the
				line.
       Meta+Y			After Ctrl+Y, press to cy-
				cle through the	previously
				deleted	text.

EXAMPLE	OF STARTING AND	STOPPING A JSHELL SESSION
       JShell is provided with the JDK.	 To start a session, enter  jshell  on
       the  command  line.  A welcome message is printed, and a	prompt for en-
       tering commands and snippets is provided.

	      %	jshell
	      |	 Welcome to JShell -- Version 9
	      |	 For an	introduction type: /help intro

	      jshell>

       To see which snippets were automatically	loaded	when  JShell  started,
       use  the	/list -start command.  The default startup snippets are	import
       statements for common packages.	The ID for each	 snippet  begins  with
       the letter s, which indicates it's a startup snippet.

	      jshell> /list -start

		s1 : import java.io.*;
		s2 : import java.math.*;
		s3 : import java.net.*;
		s4 : import java.nio.file.*;
		s5 : import java.util.*;
		s6 : import java.util.concurrent.*;
		s7 : import java.util.function.*;
		s8 : import java.util.prefs.*;
		s9 : import java.util.regex.*;
	       s10 : import java.util.stream.*;

	      jshell>

       To end the session, use the /exit command.

	      jshell> /exit
	      |	 Goodbye

	      %

EXAMPLE	OF ENTERING SNIPPETS
       Snippets	are Java statements, variable definitions, method definitions,
       class definitions, import  statements,  and  expressions.   Terminating
       semicolons are automatically added to the end of	a completed snippet if
       they're missing.

       The following example shows two variables and a method  being  defined,
       and the method being run.  Note that a scratch variable is automatical-
       ly created to hold the result because no	variable was provided.

	      jshell> int a=4
	      a	==> 4

	      jshell> int b=8
	      b	==> 8

	      jshell> int square(int i1) {
		 ...> return i1	* i1;
		 ...> }
	      |	 created method	square(int)

	      jshell> square(b)
	      $5 ==> 64

EXAMPLE	OF CHANGING SNIPPETS
       Change the definition of	a variable, method, or class  by  entering  it
       again.

       The following examples shows a method being defined and the method run:

	      jshell> String grade(int testScore) {
		 ...>	  if (testScore	>= 90) {
		 ...>	      return "Pass";
		 ...>	  }
		 ...>	  return "Fail";
		 ...> }
	      |	 created method	grade(int)

	      jshell> grade(88)
	      $3 ==> "Fail"

       To  change  the	method grade to	allow more students to pass, enter the
       method definition again and change the pass score to 80.	  Use  the  up
       arrow  key  to retrieve the previous entries to avoid having to reenter
       them and	make the change	in the if statement.   The  following  example
       shows the new definition	and reruns the method to show the new result:

	      jshell> String grade(int testScore) {
		 ...>	  if (testScore	>= 80) {
		 ...>	      return "Pass";
		 ...>	  }
		 ...>	  return "Fail";
		 ...> }
	      |	 modified method grade(int)

	      jshell> grade(88)
	      $5 ==> "Pass"

       For  snippets that are more than	a few lines long, or to	make more than
       a few changes, use the /edit command to open the	snippet	in an  editor.
       After the changes are complete, close the edit window to	return control
       to the JShell session.  The following example shows the command and the
       feedback	provided when the edit window is closed.  The /list command is
       used to show that the pass score	was changed to 85.

	      jshell> /edit grade
	      |	 modified method grade(int)
	      jshell> /list grade

		 6 : String grade(int testScore) {
			 if (testScore >= 85) {
			     return "Pass";
			 }
			 return	"Fail";
		     }

EXAMPLE	OF CREATING A CUSTOM FEEDBACK MODE
       The feedback mode determines the	prompt that's displayed, the  feedback
       messages	 that  are  provided  as snippets are entered, and the maximum
       length of a displayed value.  Predefined	feedback modes	are  provided.
       Commands	for creating custom feedback modes are also provided.

       Use  the	 /set mode command to create a new feedback mode.  In the fol-
       lowing example, the new mode mymode, is based on	the  predefined	 feed-
       back mode, normal, and verifying	command	feedback is displayed:

	      jshell> /set mode	mymode normal -command
	      |	 Created new feedback mode: mymode

       Because	the  new mode is based on the normal mode, the prompts are the
       same.  The following example shows how to see what prompts are used and
       then  changes  the  prompts to custom strings.  The first string	repre-
       sents the standard JShell prompt.  The  second  string  represents  the
       prompt for additional lines in multiline	snippets.

	      jshell> /set prompt mymode
	      |	 /set prompt mymode "\njshell> " "   ...> "

	      jshell> /set prompt mymode "\nprompt$ " "	  continue$ "

       The maximum length of a displayed value is controlled by	the truncation
       setting.	 Different types of values can have  different	lengths.   The
       following example sets an overall truncation value of 72, and a trunca-
       tion value of 500 for variable value expressions:

	      jshell> /set truncation mymode 72

	      jshell> /set truncation mymode 500 varvalue

       The feedback displayed after snippets are entered is controlled by  the
       format  setting and is based on the type	of snippet entered and the ac-
       tion taken for that snippet.  In	the predefined mode normal, the	string
       created	is  displayed when a method is created.	 The following example
       shows how to change that	string to defined:

	      jshell> /set format mymode action	"defined" added-primary

       Use the /set feedback command to	start using the	feedback mode that was
       just created.  The following example shows the custom mode in use:

	      jshell> /set feedback mymode
	      |	 Feedback mode:	mymode

	      prompt$ int square (int num1){
		 continue$ return num1*num1;
		 continue$ }
	      |	 defined method	square(int)

	      prompt$

JDK 13				     2018			     JSHELL(1)

NAME | SYNOPSIS | DESCRIPTION | OPTIONS FOR JSHELL | JSHELL COMMANDS | INPUT SHORTCUTS | INPUT EDITING | EXAMPLE OF STARTING AND STOPPING A JSHELL SESSION | EXAMPLE OF ENTERING SNIPPETS | EXAMPLE OF CHANGING SNIPPETS | EXAMPLE OF CREATING A CUSTOM FEEDBACK MODE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=jshell&sektion=1&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help