我试过使用这个存储库 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/