org.h2.tools

## Class Shell

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

- All Implemented Interfaces:
    java.lang.Runnable

      public class Shell
      extends org.h2.util.Tool
      implements java.lang.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 and Description
    `Shell()`

  - ### Method Summary

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

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

      `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 Detail

    - #### Shell

          public Shell()

  - ### Method Detail

    - #### main

          public static void main(java.lang.String... args)
                           throws java.sql.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:
        `java.sql.SQLException` - on failure

    - #### setErr

          public void setErr(java.io.PrintStream err)

      Sets the standard error stream.
      Parameters:
        `err` - the new standard error stream

    - #### setIn

          public void setIn(java.io.InputStream in)

      Redirects the standard input. By default, System.in is used.
      Parameters:
        `in` - the input stream to use

    - #### setInReader

          public void setInReader(java.io.BufferedReader reader)

      Redirects the standard input. By default, System.in is used.
      Parameters:
        `reader` - the input stream reader to use

    - #### runTool

          public void runTool(java.lang.String... args)
                       throws java.sql.SQLException

      Run the shell tool with the given command line settings.
      Specified by:
        `runTool` in class `org.h2.util.Tool`
      Parameters:
        `args` - the command line settings
      Throws:
        `java.sql.SQLException` - on failure

    - #### runTool

          public void runTool(java.sql.Connection conn,
                              java.lang.String... args)
                       throws java.sql.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:
        `java.sql.SQLException` - on failure

    - #### print

          protected void print(java.lang.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 `java.lang.Runnable`