扫描仪无法解析为某种类型

时间:2008-09-17 03:05:13

标签: java eclipse ubuntu

我刚刚安装了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)

6 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

也可能是因为你有JDK 1.5或更高版本,项目有一些特定的设置,告诉它编译为1.4。您可以通过Project>>进行测试属性>> Java编译器并确保“编译器符合级别”设置为1.5或更高。

答案 3 :(得分:0)

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

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

  1. 在命令行输入root或sudo:
  2. # update-alternatives --config javac

    1. 找到指向sun的jdk的数字,输入此数字,然后按“ENTER”。

    2. 你已经完成了!从现在开始,您可以在Ubuntu下享受java.util.Scanner。

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

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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

    }
}