问题标签 [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.

0 投票
1 回答
173 浏览

java - 按下回车后,JLine 自动完成不显示并运行 onComplete

出于某种原因,我的多线程 netty 服务器无法在 Windows 上使用自动完成功能(在我最初的测试中,linux 运行良好)我发现终端控制台 appender 和 jansi 是解决很多问题的“解决方案”,除了这个。奇怪的是我的客户端运行相同的代码函数来调用 lineReader.readLine("> "); 使用几乎完全相同的代码自动完成工作得很好。我不知道是什么问题,因为它们都以相同的顺序调用相同的代码,具有相同的依赖项(一些服务器端依赖项除外)

来源:https ://github.com/Fernthedev/light-chat

服务器读取代码:https ://github.com/Fernthedev/light-chat/blob/master/java/server/src/main/java/com/github/fernthedev/server/ServerCommandHandler.java

客户端读取代码:https ://github.com/Fernthedev/light-chat/blob/master/java/client/src/main/java/com/github/fernthedev/client/WaitForCommand.java

StaticHandler(用于读取和设置终端和阅读器):https://github.com/Fernthedev/light-chat/blob/master/java/universalChat/src/main/java/com/github/fernthedev/universal/StaticHandler。爪哇

服务器和客户端都有一个带有 main(String[] args) 方法的主类

0 投票
0 回答
273 浏览

java - 重启后保险丝断了

我在 Centos 7 上使用 Fuse (Red Hat Fuse (7.0.0.fuse-000191-redhat-1) ) 重建了我的 docker,现在一切都坏了。我没有改变任何东西。
yum 更新会导致这种情况吗?

我注意到现在有一​​个以前没有的额外外壳。

我知道如果我升级到最新版本,我将不得不升级我的所有服务并修复所有新问题。估计明天直播。我为什么要碰它。

0 投票
1 回答
106 浏览

java - 为什么我的命令提示符显示没有输入字符?

当我执行我的程序并使用 jline 的 ConsoleReader 或 BufferedReader 读取时,我输入的文本已输入但未显示。例如我输入asd,我的控制台不显示asd,但是当我按回车时,它告诉我Could not find command 'asd'. Type 'help' for help 所以我输入的字符串被读取,但没有显示。

Windows 命令提示符,启动脚本:

我试图将我的代码放在一个线程中,使用 Scanner,使用 BufferedReader,使用 ConsoleReader,但没有一个工作

我希望当我键入时asdasd会在我键入时显示。我当前的控制台输出是

0 投票
1 回答
475 浏览

java - 如何使用 Java ProcessBuilder API 运行交互式 bash?

我正在尝试使用 java ProcessBuilder API 启动 bash:

代码:

流程流消费者:

主类:

这个想法是我有我使用 Jline 控制台库创建的控制台应用程序,其中包含一些我已经创建/将创建的自定义命令。

但我希望能够在此控制台中执行 bash(交互模式),以便用户在执行某些 bash 命令时不必退出我的控制台应用程序。

使用我拥有的当前代码,它确实启动了 bash,我也能够执行 bash 命令,但是我没有看到我在 bash 提示符下输入的输入。

例如输出:

如果您看到上面的 o/p,我看不到我输入的命令(日期,错误命令),但我可以执行它们并获得输出。

我也尝试使用已注释的代码,但这只是挂起并且屏幕本身没有显示任何提示。

问题:

  1. 为什么我看不到我在运行它的终端中输入的命令?
  2. 我也尝试使用 RedirectInput、RedirectOutput 作为 PIPE,但是代码挂起,运行 bash 命令后我无法在屏幕上看到任何内容
  3. 我应该怎么做才能完成这项工作?
  4. 当我通过 processBuilder 运行 bash 命令时,我还可以将 bashrc 文件加载为配置文件,因为它有别名吗?

我检查了这个:Invoking bash from Java interactively

但我无法理解答案。仅当从终端调用 bash 时才会提示?

0 投票
2 回答
82 浏览

jline - JLine 3 帮助输出中的单个标题

如何自定义 JLine 3 中的帮助命令?我的JLine 3 shell 示例中的帮助显示为:

我想用单个“Commands:”标题替换部分标题(“System:”,“Builtins:”和“ShellCommandRegistry:”),例如:

任何想法如何在 JLine 3 中控制它?

0 投票
1 回答
228 浏览

java - 完成时转义字符的jline问题

我正在使用 java 中的 jline version3 开发一个项目,但在完成时,我需要有“else if”,但它会将 \ 作为转义字符转义空间,我也没有任何转义字符,我尝试过null而不是char[]但是它因空指针异常而崩溃

另外,我检查了https://github.com/jline/jline3/issues/173

错误是:

0 投票
0 回答
6 浏览

java - zkclient 控制台中不必要的 jline 日志

每次我通过控制台 zkCli.sh 连接到 Zookeeper 时,都会得到以下日志。

有没有办法过滤上面的日志?

0 投票
1 回答
54 浏览

java - 使用 readChar() 后 JLine 不显示字符

我尝试在 java 中制作简单的键盘测试器,所以我使用 Jline 读取字符而不按 ENTER,但是当我尝试从控制台读取行时,它没有显示字符。我尝试使用不同版本的 JLine(目前我使用 2.14.6),重置终端,打开 Echo 等。但仍然没有。

编辑:我添加了这些行并且它有效

0 投票
2 回答
396 浏览

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,则该问题无法重现。

会发生什么,为什么错误只能在特定环境中重现?有什么解决方法吗?

0 投票
0 回答
35 浏览

vi - 如何在 JShell 中将 lineeditor 设置为 vi 模式

如何在 JShell 中将 lineeditor 设置为vi 模式

该设置set editing-mode vi$HOME/.inputrc$HOME/.jline.rc中,但似乎Jshell不尊重其中任何一个。