问题标签 [jline]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 按下回车后,JLine 自动完成不显示并运行 onComplete
出于某种原因,我的多线程 netty 服务器无法在 Windows 上使用自动完成功能(在我最初的测试中,linux 运行良好)我发现终端控制台 appender 和 jansi 是解决很多问题的“解决方案”,除了这个。奇怪的是我的客户端运行相同的代码函数来调用 lineReader.readLine("> "); 使用几乎完全相同的代码自动完成工作得很好。我不知道是什么问题,因为它们都以相同的顺序调用相同的代码,具有相同的依赖项(一些服务器端依赖项除外)
来源:https ://github.com/Fernthedev/light-chat
StaticHandler(用于读取和设置终端和阅读器):https://github.com/Fernthedev/light-chat/blob/master/java/universalChat/src/main/java/com/github/fernthedev/universal/StaticHandler。爪哇
服务器和客户端都有一个带有 main(String[] args) 方法的主类
java - 重启后保险丝断了
我在 Centos 7 上使用 Fuse (Red Hat Fuse (7.0.0.fuse-000191-redhat-1) ) 重建了我的 docker,现在一切都坏了。我没有改变任何东西。
yum 更新会导致这种情况吗?
我注意到现在有一个以前没有的额外外壳。
我知道如果我升级到最新版本,我将不得不升级我的所有服务并修复所有新问题。估计明天直播。我为什么要碰它。
java - 为什么我的命令提示符显示没有输入字符?
当我执行我的程序并使用 jline 的 ConsoleReader 或 BufferedReader 读取时,我输入的文本已输入但未显示。例如我输入asd
,我的控制台不显示asd
,但是当我按回车时,它告诉我Could not find command 'asd'. Type 'help' for help
所以我输入的字符串被读取,但没有显示。
Windows 命令提示符,启动脚本:
我试图将我的代码放在一个线程中,使用 Scanner,使用 BufferedReader,使用 ConsoleReader,但没有一个工作
我希望当我键入时asd
,asd
会在我键入时显示。我当前的控制台输出是
java - 如何使用 Java ProcessBuilder API 运行交互式 bash?
我正在尝试使用 java ProcessBuilder API 启动 bash:
代码:
流程流消费者:
主类:
这个想法是我有我使用 Jline 控制台库创建的控制台应用程序,其中包含一些我已经创建/将创建的自定义命令。
但我希望能够在此控制台中执行 bash(交互模式),以便用户在执行某些 bash 命令时不必退出我的控制台应用程序。
使用我拥有的当前代码,它确实启动了 bash,我也能够执行 bash 命令,但是我没有看到我在 bash 提示符下输入的输入。
例如输出:
如果您看到上面的 o/p,我看不到我输入的命令(日期,错误命令),但我可以执行它们并获得输出。
我也尝试使用已注释的代码,但这只是挂起并且屏幕本身没有显示任何提示。
问题:
- 为什么我看不到我在运行它的终端中输入的命令?
- 我也尝试使用 RedirectInput、RedirectOutput 作为 PIPE,但是代码挂起,运行 bash 命令后我无法在屏幕上看到任何内容
- 我应该怎么做才能完成这项工作?
- 当我通过 processBuilder 运行 bash 命令时,我还可以将 bashrc 文件加载为配置文件,因为它有别名吗?
我检查了这个:Invoking bash from Java interactively
但我无法理解答案。仅当从终端调用 bash 时才会提示?
jline - JLine 3 帮助输出中的单个标题
如何自定义 JLine 3 中的帮助命令?我的JLine 3 shell 示例中的帮助显示为:
我想用单个“Commands:”标题替换部分标题(“System:”,“Builtins:”和“ShellCommandRegistry:”),例如:
任何想法如何在 JLine 3 中控制它?
java - 完成时转义字符的jline问题
我正在使用 java 中的 jline version3 开发一个项目,但在完成时,我需要有“else if”,但它会将 \ 作为转义字符转义空间,我也没有任何转义字符,我尝试过null
而不是char[]
但是它因空指针异常而崩溃
另外,我检查了https://github.com/jline/jline3/issues/173
错误是:
java - zkclient 控制台中不必要的 jline 日志
每次我通过控制台 zkCli.sh 连接到 Zookeeper 时,都会得到以下日志。
有没有办法过滤上面的日志?
java - 使用 readChar() 后 JLine 不显示字符
我尝试在 java 中制作简单的键盘测试器,所以我使用 Jline 读取字符而不按 ENTER,但是当我尝试从控制台读取行时,它没有显示字符。我尝试使用不同版本的 JLine(目前我使用 2.14.6),重置终端,打开 Echo 等。但仍然没有。
编辑:我添加了这些行并且它有效
docker - jmxterm:Docker 容器内的“无法创建系统终端”
我有一个包含 JRE、一些 Java Web 应用程序和jmxterm
. 后者用于运行一些临时管理任务。该映像在 CentOS 7 服务器上使用 Docker 1.13(它相当旧,但它是通过发行版的存储库提供的最新版本)来运行 Web 应用程序本身。
一切正常,但是jmxterm
从 1.0.0 更新到最新版本 (1.0.2) 后,我在进入正在运行的容器并启动时收到以下警告jmxterm
:
在此之后,jmxterm
不会对箭头键做出反应(尝试浏览命令历史记录时),也不会提供自动完成功能。
一些快速调查表明,该问题可能会在 CentOS 7 的干净环境中重现。比如说,这就是我可以使用我需要的所有东西引导系统和容器的方法:
这就是我进入容器并运行的方式jmxterm
:
几点观察:
jmxterm
无论我使用哪个图像,问题都不会出现在旧图像中;jmxterm
无论我使用哪个图像,新问题都会出现;- 该问题在我的笔记本电脑(具有更新的内核和 Docker)上无法重现;
- 如果我在 CentOS 7 服务器上使用最新的 Docker(来自外部存储库)而不是 CentOS 7 的本机版本 1.13,则该问题无法重现。
会发生什么,为什么错误只能在特定环境中重现?有什么解决方法吗?
vi - 如何在 JShell 中将 lineeditor 设置为 vi 模式
如何在 JShell 中将 lineeditor 设置为vi 模式?
该设置set editing-mode vi
在$HOME/.inputrc
和$HOME/.jline.rc
中,但似乎Jshell
不尊重其中任何一个。