【问题标题】:Scanner cannot be resolved to a type扫描仪无法解析为类型
【发布时间】:2008-09-17 03:05:13
【问题描述】:

我刚刚安装了 Ubuntu 8.04,并且正在学习 Java 课程,所以我想在安装 IDE 时为什么不安装它。因此,我选择了我选择的 IDE,Eclipse,并制作了一个非常简单的程序 Hello World,以确保一切顺利运行。当我使用 Scanner 进行用户输入时,我收到一个非常奇怪的错误:

我的代码:

导入 java.util.Scanner;

类测试{ 公共静态无效主要(字符串[]参数){ 扫描仪 sc = new Scanner(System.in); System.out.println("hi"); } }

输出:

线程“main”java.lang.Error 中的异常:未解决的编译问题: 扫描仪无法解析为类型 扫描仪无法解析为类型 在 test.main(test.java:5)

【问题讨论】:

    标签: java eclipse ubuntu


    【解决方案1】:

    Scanner 类是 Java 5 中新增的。我不知道 Hardy 的默认 Java 环境是什么,但它不是 Sun 的,因此可能已经过时了。

    我建议安装软件包 sun-java6-jdk 以获得最新版本,然后告诉 Eclipse 使用它。

    【讨论】:

      【解决方案2】:

      如果您使用的是 1.5 之前的 Java 版本,则 java.util.Scanner 不存在。

      您的 Eclipse 项目设置使用哪个版本的 JDK?

      查看项目、属性、Java 构建路径——查找“JRE 系统库”条目,它旁边应该有一个版本号。

      【讨论】:

        【解决方案3】:

        也可能是尽管您拥有 JDK 1.5 或更高版本,但该项目设置了一些特定设置,告诉它编译为 1.4。您可以通过 Project >> Properties >> Java Compiler 进行测试,并确保“Compiler Compliance Level”设置为 1.5 或更高。

        【讨论】:

          【解决方案4】:

          我知道,问题发布已经有一段时间了。但该解决方案可能仍然会引起任何人的兴趣。其实很简单……

          在 Ubuntu 下,您需要将 java 编译器“javac”设置为使用 sun 的 jdk 而不是任何其他替代方案。到目前为止发布的一些答案的不同之处在于我说的是 javac 而不是 java。为此,请启动一个 shell 并执行以下操作:

          1. 以 root 或 sudo 身份在命令行输入:

          # update-alternatives --config javac

          1. 找到指向 sun 的 jdk 的数字,输入这个数字,然后点击“ENTER”。

          2. 你已经完成了!以后你可以在Ubuntu下享受java.util.Scanner了。

          System.out.println("Say thank you, Mr."); Scanner scanner = java.util.Scanner(System.in); String thanks = scanner.next(); System.out.println("Your welcome.");

          【讨论】:

            【解决方案5】:

            您导入了 Scanner,但您没有使用它。您正在使用需要用户输入的扫描仪。您试图打印出一件事,但是您将程序暴露给您将使用自己的输入的事实,因此它决定在您提供用户输入后打印“Hello World”。但是由于您没有决定程序将打印什么,系统会因为不知道要打印什么而感到困惑。你需要像int a=sc.nextInt();String b=sc.nextLine(); 这样的东西,然后给你的用户输入。但是你说要Hello World!,所以Scanner是多余的。

            【讨论】:

              【解决方案6】:
              package com.company;
              
              import java.util.Scanner;
              
              public class Main {
              
                  public static void main(String[] args) {
                      Scanner in = new Scanner(System.in);
                      System.out.print("Input seconds: ");
                      int num = in.nextInt();
              
                      for (int i = 1; i <=num; i++) {
              
                          if(i%10==3)
                          {
                              System.out.println(i);
                          }
                      }
              
                  }
              }
              

              【讨论】:

              • 欢迎来到 StackOverflow。虽然此代码可能会回答问题,但提供有关 如何 和/或 为什么 解决问题的附加上下文将提高​​答案的长期价值。
              猜你喜欢
              • 2019-03-09
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-02-25
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2019-04-04
              相关资源
              最近更新 更多