Package org.h2.tools

# Class Shell

java.lang.Object
org.h2.util.Tool
org.h2.tools.Shell

All Implemented Interfaces:
  `Runnable`

public class Shell extends Tool implements Runnable
Interactive command line tool to access a database using JDBC.

## Field Summary

### Fields inherited from class org.h2.util.Tool

`out`

## Constructor Summary

Constructors
Constructor
Description
`Shell()`

## Method Summary

Modifier and Type
Method
Description
`static void`
`main(String... args)`
Options are case sensitive.
`protected void`
`print(String s)`
Print the string without newline, and flush.
`void`
`run()`
INTERNAL.
`void`
`runTool(String... args)`
Run the shell tool with the given command line settings.
`void`
`runTool(Connection conn, String... args)`
Run the shell tool with the given connection and command line settings.
`void`
`setErr(PrintStream err)`
Sets the standard error stream.
`void`
`setIn(InputStream in)`
Redirects the standard input.
`void`
`setInReader(BufferedReader reader)`
Redirects the standard input.

### Methods inherited from class org.h2.util.Tool

`getMainClassName, isOption, printNoDatabaseFilesFound, setOut, showUsage, showUsageAndThrowUnsupportedOption, throwUnsupportedOption`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### Shell

public Shell()

## Method Details

### main

public static void main(String... args) throws SQLException
Options are case sensitive.

Supported options
[-help] or [-?] | Print the list of options
[-url "<url>"] | The database URL (jdbc:h2:...)
[-user <user>] | The user name
[-password <pwd>] | The password
[-driver <class>] | The JDBC driver class to use (not required in most cases)
[-sql "<statements>"] | Execute the SQL statements and exit
[-properties "<dir>"] | Load the server properties from this directory

If special characters don't work as expected, you may need to use -Dfile.encoding=UTF-8 (Mac OS X) or CP850 (Windows).

Parameters:
  `args` - the command line arguments
Throws:
  `SQLException` - on failure

### setErr

public void setErr(PrintStream err)
Sets the standard error stream.

Parameters:
  `err` - the new standard error stream

### setIn

public void setIn(InputStream in)
Redirects the standard input. By default, System.in is used.

Parameters:
  `in` - the input stream to use

### setInReader

public void setInReader(BufferedReader reader)
Redirects the standard input. By default, System.in is used.

Parameters:
  `reader` - the input stream reader to use

### runTool

public void runTool(String... args) throws SQLException
Run the shell tool with the given command line settings.

Specified by:
  `runTool` in class `Tool`
Parameters:
  `args` - the command line settings
Throws:
  `SQLException` - on failure

### runTool

public void runTool(Connection conn, String... args) throws SQLException
Run the shell tool with the given connection and command line settings. The connection will be closed when the shell exits. This is primary used to integrate the Shell into another application.

Note: using the "-url" option in `args` doesn't make much sense since it will override the `conn` parameter.

Parameters:
  `conn` - the connection
  `args` - the command line settings
Throws:
  `SQLException` - on failure

### print

protected void print(String s)
Print the string without newline, and flush.

Parameters:
  `s` - the string to print

### run

public void run()
INTERNAL. Hides the password by repeatedly printing backspace, backspace, >, <.

Specified by:
  `run` in interface `Runnable`