首页 > 解决方案 > 如何导入 java.util.Scanner

问题描述

我是 Java 新手,我不知道为什么每次导入 java.util.Scanner 时都会收到错误消息。

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        
        Scanner scanner = new Scanner(System.in);
        
        System.out.println("What is your name? ");
        String name = scanner.nextLine();
        
        System.out.println("Hello "+name);
        
        
    }

}

在第 1 行,我收到一条错误消息,提示“无法解析类型 java.util.Iterator。它是从所需的 .class 文件中间接引用的”。当我运行它时,控制台说,“线程“主”java.lang.Error中的异常:未解决的编译问题:

在 Main.main(Main.java:5)"。

我正在使用 Eclipse IDE。如果有人可以提供帮助,我将不胜感激。谢谢

标签: javaeclipseoopjava.util.scanner

解决方案


Eclipse 无法“读取”您的 JRE,因为它甚至找不到像java.lang.String. 这是因为您错误地配置了 JRE,或者您配置的 JRE 无法被 eclipse 理解。

请注意,尽管 JRE 不再存在,但 Eclipse 仍然使用术语“JRE”。当 eclipse 告诉你“请指点我一个 JRE”时,它实际上是在说:“请指点我一个 JDK”。

JDK16比较新,你的eclipse可能已经过时了,看不懂。要么在所有事物上处于最前沿,要么为所有事物采用稳定版本。不要混搭。

选项 1:降级 Java。

因此,安装例如采用openJDK的JDK11,然后告诉eclipse它(窗口->首选项->在过滤器栏中搜索JRE->添加一个新的->指向JDK11安装目录,或者如果在mac上可能是它的“Home”子目录),并设置您的项目以使用它(右键单击,属性,您会从那里找到它)。在一台机器上同时安装JDK16和JDK11是没有问题的。您可以告诉 eclipse 的所有 em,并为每个项目甚至每次运行/调试选择一个 JDK。

选项 2:升级你的 Eclipse

当前最新的稳定版本应该没问题。

注意:此问题与 Scanner 无关。它甚至不会找到java.lang.String- 当您第一次在源文件中使用任何核心类型时它会失败。


推荐阅读