我尝试使用此存储库https://github.com/ctongfei/progressbar 为我的光线跟踪添加进度条。 运行测试时,我会遇到很多异常。
我绝对不知道它们的含义以及如何开始修复它们。
我的测试代码:
ProgressBar pb = new ProgressBar("Test", 1000);
int i = 0;
while (i < 1000) {
Thread.sleep(100);
pb.step();
i++;
}
我收到的错误消息:
2019年7月15日晚上9:14:57 org.jline.utils.Log logr警告:无法执行 检索类型为dumb-color java.io.IOException的infocmp:无法运行 程序“ infocmp”:CreateProcess错误= 2,系统找不到 在指定的文件 java.base / java.lang.ProcessBuilder.start(ProcessBuilder.java:1128)位于 java.base / java.lang.ProcessBuilder.start(ProcessBuilder.java:1071)位于 org.jline.utils.InfoCmp.getInfoCmp(InfoCmp.java:547)在 org.jline.terminal.impl.AbstractTerminal.parseInfoCmp(AbstractTerminal.java:187) 在org.jline.terminal.impl.DumbTerminal。(DumbTerminal.java:88) 在 org.jline.terminal.TerminalBuilder.doBuild(TerminalBuilder.java:401) 在org.jline.terminal.TerminalBuilder.build(TerminalBuilder.java:259) 在 me.tongfei.progressbar.ProgressThread。(ProgressThread.java:56) 在me.tongfei.progressbar.ProgressBar。(ProgressBar.java:91)在 me.tongfei.progressbar.ProgressBar。(ProgressBar.java:35)在 main.Main.main(Main.java:70)原因:java.io.IOException: CreateProcess错误= 2,系统找不到在以下位置指定的文件 java.base / java.lang.ProcessImpl.create(本机方法)位于 java.base / java.lang.ProcessImpl。(ProcessImpl.java:420)在 java.base / java.lang.ProcessImpl.start(ProcessImpl.java:151)位于 java.base / java.lang.ProcessBuilder.start(ProcessBuilder.java:1107) ...还有10个
测试99%│█████████████████████████▉│996/1000(0:01:40 / 0:00:00) 空
答案 0 :(得分:2)
我已经为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);
}
});
}