書き込みしています
何かをコンソールに書き込む必要がある場合は、いつでも 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();
}