2015-05-20 3 views
0

Я не знаком с Java или Eclipse. Там есть java-программа с несколькими импортируемыми файлами, которые я хочу запустить. Я создал новый проект в Eclipse и вставил его в код, но он рисует красную строку под java.util.Comparator и говорит, что он не может быть разрешен. Все остальные импортные работы.Eclipse на Windows не может решить java.util.Comparator

Смущенный, я загрузил последнюю версию Eclipse и перезаписал предыдущую версию, но проблема все еще существует. Я написал программу HelloWorld, и она работает.

Вот пример кода для воспроизведения проблемы: (? Или строитель)

import java.io.BufferedReader; 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.io.InputStreamReader; 
import java.util.ArrayList; 
import java.util.Collections; 
import java.util.Comparator; // error: The import java.util.Comparator cannot be resolved 
import java.util.HashMap; 
import java.util.Iterator; 

public class MyClass 
{ 
    class MyComparator implements Comparator // error: Comparator cannot be resolved to a type 
    { 
     public int compare(Object arg0, Object arg1) 
     { 
      ArrayList<String> ap0 = (ArrayList<String>) arg0; 
      ArrayList<String> ap1 = (ArrayList<String>) arg1; 
      return ap0.size() - ap1.size(); 
     } 
    } 

    void work() 
    { 
     ArrayList<ArrayList<String>> list = new ArrayList<ArrayList<String>>(); 
     Collections.sort(list, new MyComparator()); // error: The method sort(List<T>, Comparator<? super T>) from the type Collections refers to the missing type Comparator 
    } 
} 

Компилятор также говорит: Проект не был построен, так как его путь сборки является неполным. Не удается найти файл класса для java.util.Comparator. Исправьте путь сборки, затем попытайтесь построить этот проект

Предложения?

+1

Я предполагаю, что ваша проблема может быть с обобщениями, что ваш код имеет '' Компаратор или что-то подобное. Если это так, измените параметр «уровень соответствия» компилятора Java на 1.5 или выше. Для лучшей помощи покажите небольшую полную программу, которая не работает вместе с полным сообщением об ошибке. Давайте избегать гадания. –

+0

Например, пожалуйста, ознакомьтесь с ответами здесь: [Java Generics not working] (http://stackoverflow.com/questions/15784591/java-generics-not-working) –

+0

@HovercraftFullOfEels добавлен образец кода. Уровень соответствия - 1.7. – MacMillan

ответ

0

Удалите строку java.util.Collections, затем нажмите ctrl + shift + o и выберите правильный. Если он не отображает рекомендуемые элементы, слева от новой красной строки покажет вам причину.

0

Возможно, вы использовали старую версию Java для запуска виртуальной машины Eclipse или настроили более старую JVM для рабочей области или параметров проекта. Проще всего проверить: проверить JRE System Library узел в проводнике проекта и выбрать свойства, чтобы выбрать другой. Возможно, вам потребуется установить/зарегистрировать все установленные/известные JDK под кодом Windows-> Preference-> Java-> Установленные JRE. Компилятор Eclipse наследует уровень соответствия источника от выбранной JRE.

+0

Благодарим вас за помощь. У меня установлено 2 JRE, один в 1.8.0_31 (поставляется с Eclipse) и один в 1.8.0_45. Пробовал переключение, но не работает. Кроме того, в свойствах проекта уровень соответствия компилятора равен 1.7. – MacMillan

2

Если у вас есть и JRE7 и 1.8 установлен, переключатель от 1,8 до 7.

Смежные вопросы