当前位置: 首页 > 工具软件 > JLine > 使用案例 >

jline初步了解

邹缪文
2023-12-01

jline 初步了解

jline是用java开发的仿shell终端模拟工具包,模拟shell终端,以命令行的方式读取输入信息。

1. 属性配置

原文档地址

两种配置方式:通过jline配置文件配置,或者标准的system properties(jvm或者System.setProperty)配置.

  • jline.configuration - jline配置文件路径。默认值为$HOME/.jline.rc
  • jline.terminal - 区别终端类型。
  • jline.shutdownhook - (true/false) 设定JLine是否安装JVM钩子。用于在程序退出时把中断恢复为原来状态。默认为true。
  • jline.nobell - 按下无效按键时不响铃。
  • jline.esc.timeout - (默认 150ms) ESC键按下后jline等待另一个键的时间。
  • jline.inputrc - 覆盖默认位置$HOME/.inputrc
  • jline.completion.threshold - 多于此值时,在显示所有匹配值前先发出warning。

Windows Specific

  • jline.WindowsTerminal.ansi - (默认true)是否支持ANSI。
  • jline.WindowsTerminal.directConsole - (默认true)是否使用JNI console interaction。(可能会使控制台读取部分处于死循环,可以设置为false,绕过本地Windows API,直接使用Java IO流输出: 博客地址)

Unix Specific

  • jline.stty - stty程序路径。
  • jline.sh - (默认为sh) 执行外部程序的shell名称。

2. JLine 2.x Wiki

原文档地址

特性

  • Command history - 之前被输入的命令会被记录,也可以被持久化。
  • Line editing - 可以在当前行随意编辑,并支持emacs和vi的key mappings。
  • Completion - 以可插入方式来实现命令行的tab补全。
  • Custom key bindings - 按键绑定动作,在.inputrc文件中设定。
  • Character Masking - 在输入密码时很有用。
  • 99.99% Java - JLine大部分由Java实现,少部分使用本地代码,来支持Windows。

3. 日志配置

原文档地址

JLine不依靠其他日志框架,而是使用内部工具jline.internal.Log

默认把日志信息输入到System.err(默认只输出WARN和ERROR)。可通过以下方式改变输出流:

jline.internal.Log.setOutput(final PrintStream out)

从2.13开始可以使用java.util.logging框架。前提是在配置文件中做以下设置:

jline.log.jul=true

想输出DEBUG日志:

jline.internal.Log.debug=true

想要输出TRACE信息:

jline.internal.Log.trace=true

4. 终端配置

原文档地址

jline.terminal=_type_

终端类型:

  • auto
  • unix
  • win
  • windows
  • none
  • off
  • false
  • class implementing jline.Terminal

默认值由系统自动决定。

也可以通过以下方式在程序中设定

jline.TerminalFactory.configure(String type)

5. 使用JLine

原文档地址

 类似资料: