java - 如何导入 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。如果有人可以提供帮助,我将不胜感激。谢谢
解决方案
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
- 当您第一次在源文件中使用任何核心类型时它会失败。
推荐阅读
- jmeter - 更改 Jmeter 堆大小的最佳方法是什么:OutOfMemoryError
- javascript - 获取“在 ClientRequest 处挂断套接字。
" 使用 node-fetch 调用 GET 请求时 - php - 在 laravel 中显示带前导零的无符号零填充 id
- javascript - Javascript 包与另一种语言的包装器
- aws-lambda - AWS Lambda API 在 POST 请求中给出 502 错误
- java - 如何识别数据是否在硒中显示
- jenkins - 如何从另一个管道评估詹金斯管道状态
- apache-spark - 我应该在 Spark DataFrame 上应用什么转换
- python - 从熊猫列中提取最低和最高日期
- sql - SQL ORACLE 创建现有表柱形图