我想编写一个执行屏幕操作的Java终端应用程序.是否有任何好的库允许你像*nix/C世界中的curses一样操纵屏幕?
我正在寻找的最小功能是窗口和用户输入支持.
在功能方面,我希望有一个终端区域,其中一些数据定期更新,同时(同时)用户可以在屏幕的其他部分输入命令/文本.
一些程序以用户体验的方式向 bash 生成输出,就像更改值的字符串而不是打印的行(bash 向下滚动以显示所有更改的输出)。这种现象叫什么?它是如何在例如 java 程序或 bash 脚本中实现的。如何解析输出?它只是打印新行但使用一些特殊功能吗?
top 是一个使用这种输出数据“现象”的程序
使用了 Okey 游标。
那么我如何在java中解析它们?我试过这段代码,但它没有打印任何东西
public static void exeTest(String [] args) throws IOException{
if (args.length <= 0) {
System.out.println("empty command");
return;
}
Process process = new ProcessBuilder(args).start();
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
System.out.printf("Output of running %s is:",
Arrays.toString(args));
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
Run Code Online (Sandbox Code Playgroud)
感谢所有好的答案,我现在对这个主题更加熟悉,即使我仍然无法解析像 java 中 top 那样的程序输出。我会关闭这个问题并做更多关于如何在 java 中解析它的研究。然后我可能会开始另一个更具体的关于在 java 中解析输出的内容。