java.lang.Object
org.jline.shell.Shell
- All Implemented Interfaces:
AutoCloseable
An interactive shell that runs a read-eval-print loop (REPL)
using a
CommandDispatcher for command execution.
The shell is a thin REPL loop. The dispatcher is injected or auto-created
as a DefaultCommandDispatcher.
Use builder() to create a shell:
Shell shell = Shell.builder()
.terminal(terminal)
.prompt("myapp> ")
.dispatcher(dispatcher)
.groups(group1, group2)
.build();
shell.run();
- Since:
- 4.0
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionstatic ShellBuilderbuilder()Creates a newShellBuilder.voidclose()Closes this shell, releasing the dispatcher and optionally the terminal.Returns the command dispatcher used by this shell.booleanReturns whether the shell is currently running.org.jline.reader.LineReaderreader()Returns the line reader used by this shell.voidrun()Runs the interactive REPL loop.voidstop()Stops the REPL loop.org.jline.terminal.Terminalterminal()Returns the terminal used by this shell.
-
Method Details
-
builder
Creates a newShellBuilder.- Returns:
- a new shell builder
-
run
Runs the interactive REPL loop.This method blocks until the user exits (e.g. via EOF or an exit command), or until
stop()is called.- Throws:
Exception- if initialization or execution fails
-
stop
public void stop()Stops the REPL loop. The current or next iteration will exit. -
isRunning
public boolean isRunning()Returns whether the shell is currently running.- Returns:
- true if running
-
terminal
public org.jline.terminal.Terminal terminal()Returns the terminal used by this shell.- Returns:
- the terminal
-
reader
public org.jline.reader.LineReader reader()Returns the line reader used by this shell.- Returns:
- the line reader
-
dispatcher
Returns the command dispatcher used by this shell.- Returns:
- the command dispatcher
-
close
public void close()Closes this shell, releasing the dispatcher and optionally the terminal.- Specified by:
closein interfaceAutoCloseable
-