java 不错的控制台输入

标签 java console

我正在尝试从 java 的控制台读取一行。这是我的代码:

System.console().readLine("shell $ ");

这可行,但我想使用心爱的Linux功能,例如箭头来移动光标(不像现在那样插入^[[C),向上箭头应该解决上一个命令,选项卡应该自动完成一些东西(这个不是必需的,但很有用,我会对正确的箭头行为感到满意)。

并且 - 不,我想使用“纯 java”解决方案,而不是 libreadline 的 JNI 包装器。

JDK本身或某些框架是否提供了某些功能?

最佳答案

java中没有这样的内置功能。为了能够做到这一点,即创建一个能够执行诸如循环执行先前命令、使用箭头键移动之类的操作的控制台,需要为这些键编写一个 Action 处理程序,这在 java 中是不可能的(根据内置的功能),因为输入是在 java 中缓冲的,一旦您按下 Enter,它就会被刷新。

您也许可以在 JNI(即 Java native 语言)中执行此操作。据我所知,你可以看看java console api ,更多详细信息blog .

关于java 不错的控制台输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15118425/

相关文章:

java - 请求不包含多部分/表单数据或多部分/混合流,内容类型 header 是 application/x-www-form-urlencoded

Java 绘制的对象未正确更新

java - 如何在 jooq 中选择一个自动生成的记录和附加数据?

r - 如何打印多个项目进行输出?

php - 如何获取 Phar 中的当前工作目录?

java - 监控Java应用程序的API指标

java - 使用 Jersey 在 Java 中向移动 Safari 浏览器提供 mp3

c - 热设置 termcap 能力 'bw' 标志?

python - 从 python 运行时,Docker 图像给我 "executable file not found in $PATH"

javascript - 如何在 Chrome 的 JavaScript 控制台中获取内联函数定义