書き込みしています

何かをコンソールに書き込む必要がある場合は、いつでも JDK の System.out を使用できます。これは、JDK 独自のストリームに直接入ります。他の推奨される方法は、JLine の Terminal を使用して、そこからライターインスタンスを取得することです。

ターゲットエンドポイントを使用している場合、つまり、与えられた CommandContext に何も返さないことが期待されるコンシューマーは、Terminal への参照を含み、そこからライターにアクセスできます。

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

@Command を使用している場合は、CommandContext にアクセスし、そこから Terminal を取得できます。

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

ライターにアクセスするために Terminal をオートワイヤーすることができます。

@Autowired
Terminal terminal;

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