You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Eclipse中Scanner使用报错:System.in/out无法解析或不是字段

问题解决:System.in/out无法解析的编译错误

问题原因

你自定义的类名是System,和Java核心库中的java.lang.System类重名。Java会优先加载当前类,所以代码里的System.in、System.out会指向你自己的System类,而这个类并没有定义in和out字段,因此触发编译错误。

解决方案

方案1:修改类名(推荐)

把自定义类的名称改成非核心类重名的名字,比如SystemDemo,修改后代码如下:

import java.util.Scanner;
public class SystemDemo {
    public static void main(String [] args)
    {
        Scanner sc = new Scanner(System.in);
        System.out.println("Please enter an integer");
        int i = sc.nextInt();
        System.out.println(i);
    }
}

方案2:使用全限定类名(不推荐)

如果必须保留System作为类名,调用核心库的System类时需要加上完整包路径java.lang.System:

import java.util.Scanner;
public class System {
    public static void main(String [] args)
    {
        Scanner sc = new Scanner(java.lang.System.in);
        java.lang.System.out.println("Please enter an integer");
        int i = sc.nextInt();
        java.lang.System.out.println(i);
    }
}

补充说明

更新或重装Eclipse无法解决该问题,因为这是代码命名冲突导致的语法问题,与IDE环境无关。

内容的提问来源于stack exchange,提问作者CHUA CHEN FENG VAUGHN

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 14:59:54