Arkde, у меня есть возможное объяснение, почему решение Ярослава с JDK7 не сработало для вас.
Возможно, вы смешали версии Java в различных альтернативах элементах, возможно, конфликтующих с версиейчто переменные окружения, такие как JAVA_HOME
и JDK_HOME
указывают на?
Может быть, что-то указывает на символическую ссылку /usr/lib/jvm/default-java
в качестве домашней страницы JDK, и эта символическая ссылка указывает на версию JDK, отличную от предполагаемой?
Вы пытались сбросить альтернативы для всех инструментов Java до версии 7?Например:
update-java-alternatives --list
# ...see what JDK's are available, choose the one that corresponds to Java 7
# and set it to be the default in alternatives:
sudo update-java-alternatives --set java-1.7.0-openjdk-amd64
# or interactively:
sudo update-alternatives --config java
Что выводят следующие команды в вашей системе?
echo $JAVA_HOME
echo $JDK_HOME
ls -l /usr/lib/jvm/default-java
update-java-alternatives --list
update-alternatives --list java
У меня была точно такая же проблема.Я выполнил strace для процесса Idea и в журнале увидел, что он пытается открыть несколько файлов .class без указания пути к ним - например, open("SomeClass.class", O_RDONLY) = -1 ENOENT (No such file or directory)
- без пути к выходному каталогу проекта и соответствующему пакету.
Итак, я установил apt-get JDK 7 вместе с JDK 6:
apt-get install openjdk-7-doc openjdk-7-jdk openjdk-7-jre openjdk-7-jre-headless openjdk-7-jre-lib openjdk-7-source
В Ubuntu 11.10 Oneiric, OpenJDK 6 не может быть удален, если вы хотите OpenJDK 7. JDK 7 является зависимымв JDK 6 ...
Итак, я:
- обновил конфигурацию альтернатив, как указано выше,
- изменил символьную ссылку
/usr/lib/jvm/default-java
, указав на java-7-openjdk-amd64
, - дважды проверил все переменные среды (мои
JAVA_HOME
и JDK_HOME
обе указывают на /usr/lib/jvm/default-java
), - соответствующим образом перенастроил SDK моего проекта (и для всех модулей впроект),
и вуаля - проблема решена!