【问题标题】:Command prompt inside a java programjava程序中的命令提示符
【发布时间】:2011-10-27 15:32:10
【问题描述】:

所以我想制作一个 java 应用程序,它在运行时可以从命令行运行自定义命令(不是 windows 命令,我的应用程序的命令),我已经可以做到,但我想要一个提示例如>,您可以在其中键入命令,我如何输出>,然后在该行打印其他内容时将其删除?

【问题讨论】:

  • 为什么要删除它?
  • 我可能没有清楚地描述这一点,我的意思是,所以在所有输出的底部有一个 > 并且你会在它的右侧键入命令,所以它看起来就像提示一样。
  • 如果 > 需要在执行命令后从控制台中删除,也许使用退格字符(ASCII 代码 8)可以工作?看起来很老套,但谁知道呢。
  • 到目前为止,@G_H 有最好的建议。随意发布它作为答案 G_H,
  • 是的,它几乎完美无缺,至少对我来说是这样。

标签: java command-line prompt


【解决方案1】:

在 Java 6 上,您可以为此使用 Console 类。具体来说,readLine 方法。来自 API:

public String readLine(String fmt, Object... args)

   Provides a formatted prompt, then reads a single line of text from the console. 

【讨论】:

    【解决方案2】:

    我同意 PaoloVictor 使用 Console 的建议,但如果您对架构更感兴趣,我可能会建议使用 REPL(读取、评估、打印循环)。你会在哪里做这样的事情。

    init();
    while(1){
    
       System.out.print("myProgram>");
       String cmd = Console.readLine(String fmt, Object... args);
       evaluate(cmd);
    }
    

    【讨论】:

      【解决方案3】:

      我找到了一个很好的库,JLine,完全符合我的要求。

      【讨论】: