Сканер не может быть разрешен по типу

Я только что установил Ubuntu 8.04 и прохожу курс по Java, поэтому я подумал, почему бы не установить IDE во время ее установки. Поэтому я выбираю свою IDE, Eclipse, и делаю очень простую программу Hello World, чтобы убедиться, что все работает без сбоев. Когда я использую сканер для ввода данных пользователем, я получаю очень странную ошибку:

My code:

import java.util.Scanner;

class test {public static void main (String [] args) {Scanner sc = new Scanner (System.in); System.out.println ("привет"); }}

Результат:

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)

person Austin    schedule 17.09.2008    source источник


Ответы (6)


Класс Scanner является новым в Java 5. Я не знаю, какая среда Java по умолчанию у Харди, но она не принадлежит Sun и, следовательно, может быть устаревшей.

Я рекомендую установить пакет sun-java6-jdk, чтобы получить самую последнюю версию, а затем попросить Eclipse использовать его.

person Thomas    schedule 17.09.2008

Если вы используете версию Java до 1.5, java.util.Scanner не существует.

Какую версию JDK настроен для использования вашим проектом Eclipse?

Взгляните на Project, Properties, Java Build Path - найдите запись «Системная библиотека JRE», рядом с которой должен быть номер версии.

person tgdavies    schedule 17.09.2008

Также может случиться так, что, хотя у вас установлен JDK 1.5 или выше, у проекта есть определенные настройки, которые указывают ему компилироваться как 1.4. Вы можете проверить это через Project >> Properties >> Java Compiler и убедиться, что для параметра Compiler Compliance Level установлено значение 1.5 или выше.

person Lee Theobald    schedule 17.09.2008

Я знаю, прошло много времени с момента публикации вопроса. Но решение может быть интересно кому угодно. На самом деле это довольно просто ...

В Ubuntu вам нужно настроить java-компилятор javac на использование sun jdk вместо любой другой альтернативы. Разница с некоторыми из опубликованных до сих пор ответов заключается в том, что я говорю о javac, а не о java. Для этого запустите снаряд и выполните следующие действия:

  1. Как root или sudo введите в командной строке:

# update-alternatives --config javac

  1. Найдите число, указывающее на jdk солнца, введите это число и нажмите «ENTER».

  2. Готово! С этого момента вы можете пользоваться java.util.Scanner в Ubuntu.

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

person Community    schedule 23.01.2009

Вы импортировали сканер, но не используете его. Вы используете сканер, который требует ввода данных пользователем. Вы пытаетесь распечатать одну вещь, но вы подвергаете свою программу тому факту, что собираетесь использовать свой собственный ввод, поэтому она решает напечатать «Hello World» после того, как вы введете ввод пользователя. Но поскольку вы не решаете, что будет печатать программа, система запутается, поскольку не знает, что печатать. Вам нужно что-то вроде int a=sc.nextInt(); или String b=sc.nextLine();, а затем ввести свой пользовательский ввод. Но вы сказали, что хотите Hello World!, поэтому Сканер избыточен.

person boi yeet    schedule 31.03.2020

person    schedule
comment
Добро пожаловать в StackOverflow. Хотя этот код может ответить на вопрос, предоставление дополнительного контекста относительно того, как и / или почему он решает проблему, улучшит долгосрочную ценность ответа. - person Sven Eberth; 17.06.2021