当需要将某些内容写入控制台时,您可以随时 使用 JDK,然后直接进入 JDK 自己的流。 其他推荐的方法是使用 JLine 并从那里获取 writer 实例。System.outTerminalSpring中文文档

如果使用目标端点,即预期的使用者 要返回任何给定的内容,都包含对 WRITER 的引用,并且可以从那里访问 WRITER。CommandContextTerminalSpring中文文档

CommandRegistration.builder()
	.command("example")
	.withTarget()
		.consumer(ctx -> {
			ctx.getTerminal().writer().println("hi");
			ctx.getTerminal().writer().flush();
		})
		.and()
	.build();

如果使用,您可以访问并从那里获取。@CommandCommandContextTerminalSpring中文文档

@Command
public void example(CommandContext ctx) {
	ctx.getTerminal().writer().println("hi");
	ctx.getTerminal().writer().flush();
}

可以自动接线以访问其编写器。TerminalSpring中文文档

@Autowired
Terminal terminal;

@ShellMethod
public void example() {
	terminal.writer().println("hi");
	terminal.writer().flush();
}