繁体   English   中英

扫描仪无法解析为类型

[英]Scanner cannot be resolved to a type

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

我的代码:

import java.util.Scanner;

class test { public static void main (String [] args) { Scanner sc = new Scanner(System.in); System.out.println("hi"); } }

输出:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
    Scanner cannot be resolved to a type
    Scanner cannot be resolved to a type

   at test.main(test.java:5)

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

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

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

在 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.");

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

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);
            }
        }

    }
}

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM