java - 尝试将进度条添加到控制台

标签 java github intellij-idea console progress-bar

我试过使用这个存储库 https://github.com/ctongfei/progressbar 为我的光线追踪添加进度条。 当我运行测试时,我遇到了很多异常。

我完全不知道它们是什么意思,甚至不知道如何开始修复它们。

我的测试代码:

 ProgressBar pb = new ProgressBar("Test", 1000);
 int i = 0;
 while (i < 1000) {
      Thread.sleep(100);
      pb.step();
      i++;
 }

我得到的错误信息:

Jul 15, 2019 9:14:57 PM org.jline.utils.Log logr WARNING: Unable to retrieve infocmp for type dumb-color java.io.IOException: Cannot run program "infocmp": CreateProcess error=2, The system cannot find the file specified at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1128) at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1071) at org.jline.utils.InfoCmp.getInfoCmp(InfoCmp.java:547) at org.jline.terminal.impl.AbstractTerminal.parseInfoCmp(AbstractTerminal.java:187) at org.jline.terminal.impl.DumbTerminal.(DumbTerminal.java:88) at org.jline.terminal.TerminalBuilder.doBuild(TerminalBuilder.java:401) at org.jline.terminal.TerminalBuilder.build(TerminalBuilder.java:259) at me.tongfei.progressbar.ProgressThread.(ProgressThread.java:56) at me.tongfei.progressbar.ProgressBar.(ProgressBar.java:91) at me.tongfei.progressbar.ProgressBar.(ProgressBar.java:35) at main.Main.main(Main.java:70) Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified at java.base/java.lang.ProcessImpl.create(Native Method) at java.base/java.lang.ProcessImpl.(ProcessImpl.java:420) at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:151) at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1107) ... 10 more

Test 99% │█████████████████████████▉│ 996/1000 (0:01:40 / 0:00:00) null

最佳答案

我已经为 jline 创建了拉取请求(请参阅 https://github.com/jline/jline3/pull/427)

作为 jline 版本 < 3.12 的解决方法,您可以使用以下代码(使用来自 apache-commons 的 IOUtils):

   static {
        InfoCmp.setDefaultInfoCmp("dumb-color", () -> {
            try {
                return new String(IOUtils.toByteArray(InfoCmp.class.getResourceAsStream("/org/jline/utils/dumb-colors.caps")));
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        });
    }

关于java - 尝试将进度条添加到控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57045399/

相关文章:

没有命名空间的 xml 的 Java xsd 验证

java - 比较填充有不同种类对象的两个集合

java - Java的Matcher.replaceAll如何获取内部匹配结果?

jquery - 我应该如何在开源应用程序中打包或声明 Javascript 依赖项?

docker - 如何在 docker hub 上添加我不拥有的私有(private)仓库以进行自动构建

android - 如何在 Android Studio 上生成类图 (UML) (IntelliJ Idea)

java - 如何在大型软件系统中进行调试?

java - 这行代码中的冒号起什么作用?

git - 将 .git 仓库移动到父目录

java - 周围有来自 Intellij 自动完成的建议吗?