diff --git a/src/main/java/com/claudecode/cli/ClaudeCodeRunner.java b/src/main/java/com/claudecode/cli/ClaudeCodeRunner.java index 34ceeef..420d2c2 100644 --- a/src/main/java/com/claudecode/cli/ClaudeCodeRunner.java +++ b/src/main/java/com/claudecode/cli/ClaudeCodeRunner.java @@ -45,6 +45,9 @@ public class ClaudeCodeRunner implements CommandLineRunner { // 检查是否强制使用旧模式 String tuiMode = System.getenv("CLAUDE_CODE_TUI"); + if (tuiMode == null) { + tuiMode = System.getProperty("CLAUDE_CODE_TUI"); + } if ("legacy".equalsIgnoreCase(tuiMode)) { log.info("Legacy TUI mode requested via CLAUDE_CODE_TUI=legacy"); replSession.start(); diff --git a/src/test/java/com/claudecode/ConsoleMain.java b/src/test/java/com/claudecode/ConsoleMain.java new file mode 100644 index 0000000..df2415c --- /dev/null +++ b/src/test/java/com/claudecode/ConsoleMain.java @@ -0,0 +1,46 @@ +package com.claudecode; + +import org.springframework.boot.SpringApplication; + +import java.util.HashMap; +import java.util.Map; + +/** + * 控制台模式启动入口 —— 跳过 Jink TUI,使用纯文本 Scanner 交互。 + *

+ * 适用于: + *

+ *

+ * 在 IDE 中直接右键 Run 即可使用。 + *

+ * 运行前需设置环境变量: + *

+ */ +public class ConsoleMain { + + public static void main(String[] args) { + // 强制使用 legacy REPL(Scanner 模式),跳过 Jink TUI + System.setProperty("CLAUDE_CODE_TUI", "legacy"); + + SpringApplication app = new SpringApplication(ClaudeCodeApplication.class); + + Map props = new HashMap<>(); + // 关闭 web 服务器(CLI 模式) + props.put("spring.main.web-application-type", "none"); + // 减少启动日志噪音 + props.put("logging.level.root", "WARN"); + props.put("logging.level.com.claudecode", "INFO"); + app.setDefaultProperties(props); + + app.run(args); + } +}