IntelliJ中Java Scanner无法读取输入问题求助
解决IntelliJ中Scanner无法读取输入的问题
先排查代码问题
- 检查是否存在提前终止程序的代码:比如在Scanner读取输入前调用了
System.exit(0),导致程序直接退出,根本没走到输入逻辑。 - 确认Scanner初始化正确:必须基于
System.in创建实例,即Scanner scanner = new Scanner(System.in);,如果用了其他输入流,会导致无法读取控制台输入。 - 处理输入时的换行残留:如果之前用了
nextInt()/nextDouble()等方法,这些方法不会读取换行符,后续调用nextLine()会直接读取空字符串,看起来像是没读取输入。解决方法是在nextInt()后加一行scanner.nextLine()消耗掉换行符。
IntelliJ设置调整
- 启用控制台模拟终端:
- 点击顶部菜单
Run>Edit Configurations - 在左侧选中你的Java运行配置
- 在右侧
Configuration标签页,找到Emulate terminal in output console选项并勾选 - 点击
Apply后重新运行程序
- 点击顶部菜单
- 尝试独立终端运行:如果上述方法无效,勾选
Run in dedicated terminal选项,让程序在独立终端窗口运行,避免控制台交互异常。
其他排查方向
- 升级IntelliJ到最新稳定版:旧版本可能存在控制台交互的bug,更新后可解决部分兼容问题。
- 重启IntelliJ:缓存或临时状态异常可能导致奇怪的交互问题,重启IDE后再测试。
内容的提问来源于stack exchange,提问作者Nibowaka
相关产品推荐
相关产品推荐

