程序包 jline

类 WindowsTerminal

java.lang.Object
jline.Terminal
jline.WindowsTerminal
所有已实现的接口:
ConsoleOperations

public class WindowsTerminal extends Terminal

Terminal implementation for Microsoft Windows. Terminal initialization in initializeTerminal() is accomplished by extracting the jline_version.dll, saving it to the system temporary directoy (determined by the setting of the java.io.tmpdir System property), loading the library, and then calling the Win32 APIs SetConsoleMode and GetConsoleMode to disable character echoing.

By default, the readCharacter(java.io.InputStream) method will attempt to test to see if the specified InputStream is System.in or a wrapper around FileDescriptor.in, and if so, will bypass the character reading to directly invoke the readc() method in the JNI library. This is so the class can read special keys (like arrow keys) which are otherwise inaccessible via the System.in stream. Using JNI reading can be bypassed by setting the jline.WindowsTerminal.directConsole system property to false.

作者:
Marc Prud'hommeaux
  • 字段详细资料

    • SPECIAL_KEY_INDICATOR

      public static final int SPECIAL_KEY_INDICATOR
      On windows terminals, this character indicates that a 'special' key has been pressed. This means that a key such as an arrow key, or delete, or home, etc. will be indicated by the next character.
      另请参阅:
    • NUMPAD_KEY_INDICATOR

      public static final int NUMPAD_KEY_INDICATOR
      On windows terminals, this character indicates that a special key on the number pad has been pressed.
      另请参阅:
    • LEFT_ARROW_KEY

      public static final int LEFT_ARROW_KEY
      When following the SPECIAL_KEY_INDICATOR or NUMPAD_KEY_INDICATOR, this character indicates an left arrow key press.
      另请参阅:
    • RIGHT_ARROW_KEY

      public static final int RIGHT_ARROW_KEY
      When following the SPECIAL_KEY_INDICATOR or NUMPAD_KEY_INDICATOR this character indicates an right arrow key press.
      另请参阅:
    • UP_ARROW_KEY

      public static final int UP_ARROW_KEY
      When following the SPECIAL_KEY_INDICATOR or NUMPAD_KEY_INDICATOR this character indicates an up arrow key press.
      另请参阅:
    • DOWN_ARROW_KEY

      public static final int DOWN_ARROW_KEY
      When following the SPECIAL_KEY_INDICATOR or NUMPAD_KEY_INDICATOR this character indicates an down arrow key press.
      另请参阅:
    • DELETE_KEY

      public static final int DELETE_KEY
      When following the SPECIAL_KEY_INDICATOR or NUMPAD_KEY_INDICATOR this character indicates that the delete key was pressed.
      另请参阅:
    • HOME_KEY

      public static final int HOME_KEY
      When following the SPECIAL_KEY_INDICATOR or NUMPAD_KEY_INDICATOR this character indicates that the home key was pressed.
      另请参阅:
    • END_KEY

      public static final char END_KEY
      When following the SPECIAL_KEY_INDICATOR or NUMPAD_KEY_INDICATOR this character indicates that the end key was pressed.
      另请参阅:
    • PAGE_UP_KEY

      public static final char PAGE_UP_KEY
      When following the SPECIAL_KEY_INDICATOR or NUMPAD_KEY_INDICATOR this character indicates that the page up key was pressed.
      另请参阅:
    • PAGE_DOWN_KEY

      public static final char PAGE_DOWN_KEY
      When following the SPECIAL_KEY_INDICATOR or NUMPAD_KEY_INDICATOR this character indicates that the page down key was pressed.
      另请参阅:
    • INSERT_KEY

      public static final char INSERT_KEY
      When following the SPECIAL_KEY_INDICATOR or NUMPAD_KEY_INDICATOR this character indicates that the insert key was pressed.
      另请参阅:
    • ESCAPE_KEY

      public static final char ESCAPE_KEY
      When following the SPECIAL_KEY_INDICATOR or NUMPAD_KEY_INDICATOR, this character indicates that the escape key was pressed.
      另请参阅:
  • 构造器详细资料

    • WindowsTerminal

      public WindowsTerminal()
  • 方法详细资料

    • readCharacter

      public int readCharacter(InputStream in) throws IOException
      从类复制的说明: Terminal
      Read a single character from the input stream. This might enable a terminal implementation to better handle nuances of the console.
      覆盖:
      readCharacter 在类中 Terminal
      抛出:
      IOException
    • initializeTerminal

      public void initializeTerminal() throws Exception
      从类复制的说明: Terminal
      Initialize any system settings that are required for the console to be able to handle input correctly, such as setting tabtop, buffered input, and character echo.
      指定者:
      initializeTerminal 在类中 Terminal
      抛出:
      Exception
    • readVirtualKey

      public int readVirtualKey(InputStream in) throws IOException
      从类复制的说明: Terminal
      Reads a virtual key from the console. Typically, this will just be the raw character that was entered, but in some cases, multiple input keys will need to be translated into a single virtual key.
      覆盖:
      readVirtualKey 在类中 Terminal
      参数:
      in - the InputStream to read from
      返回:
      the virtual key (e.g., ConsoleOperations#VK_UP)
      抛出:
      IOException
    • isSupported

      public boolean isSupported()
      从类复制的说明: Terminal
      Returns true if this terminal is capable of initializing the terminal to use jline.
      指定者:
      isSupported 在类中 Terminal
    • isANSISupported

      public boolean isANSISupported()
      Windows doesn't support ANSI codes by default; disable them.
      覆盖:
      isANSISupported 在类中 Terminal
    • getEcho

      public boolean getEcho()
      从类复制的说明: Terminal
      Returns true if the terminal will echo all characters type.
      指定者:
      getEcho 在类中 Terminal
    • getTerminalWidth

      public int getTerminalWidth()
      Unsupported; return the default.
      指定者:
      getTerminalWidth 在类中 Terminal
      另请参阅:
    • getTerminalHeight

      public int getTerminalHeight()
      Unsupported; return the default.
      指定者:
      getTerminalHeight 在类中 Terminal
      另请参阅:
    • setDirectConsole

      public void setDirectConsole(Boolean directConsole)
      Whether or not to allow the use of the JNI console interaction.
    • getDirectConsole

      public Boolean getDirectConsole()
      Whether or not to allow the use of the JNI console interaction.
    • isEchoEnabled

      public boolean isEchoEnabled()
      从类复制的说明: Terminal
      Returns false if character echoing is disabled.
      指定者:
      isEchoEnabled 在类中 Terminal
    • enableEcho

      public void enableEcho()
      从类复制的说明: Terminal
      Enable character echoing. This can be used to re-enable character if the ConsoleReader is no longer being used.
      指定者:
      enableEcho 在类中 Terminal
    • disableEcho

      public void disableEcho()
      从类复制的说明: Terminal
      Disable character echoing. This can be used to manually re-enable character if the ConsoleReader has been disabled.
      指定者:
      disableEcho 在类中 Terminal
    • getDefaultBindings

      public InputStream getDefaultBindings()
      覆盖:
      getDefaultBindings 在类中 Terminal