IntelliJ Idea под Linux, нет такого файла или каталога в основном классе

Я запускаю IntelliJ Idea под linux. Я создал проект и модуль внутри него, и в этом модуле у меня есть класс (MyClass.class), и когда я пытаюсь запустить его из IDE, я получаю

ОШИБКА: MyClass.class(Нет такого файла или каталога)

Может кто-нибудь объяснить мне, почему IntelliJ Idea не распознает классы внутри моего модуля? Я знаю, что это должна быть проблема с настройками модуля, но я не могу понять это. Я использую Ubuntu 11.10

OK Я помещаю здесь пути и все для просмотра:)

тип: echo $PATH
Результат: /USR/Library/LightDM/LightDM:/USR/локальные/SBIN:/USR/локальные/бен:/USR/SBIN:/USR/бен:/SBIN:/бен:/USR/игры:/USR/Library/JVM/Java-7-OpenJDK-i386/бен:/USR/Library/JVM/Java-7-OpenJDK-i386/бен:/USR/Library/JVM/Java-7-OpenJDK-i386/бен

тип: echo $JAVA_HOME Результат:
/USR/Library/JVM/Java -7-OpenJDK-i386

тип:./idea.sh Результат: ПРИМЕЧАНИЕ. Если у вас установлены как Sun JDK, так и OpenJDK пожалуйста, проверьте, что переменная окружения IDEA_JDK или JDK_HOME указывает на действительную установку Sun JDK.

Ответ 1

Аркде, у меня есть возможное объяснение, почему решение Jaroslav с JDK7 не сработало для вас.

Возможно, у вас были смешанные версии Java в различных альтернативах, возможно, противоречащие версии, переменные среды, такие как JAVA_HOME и JDK_HOME, указывают на?

Может быть, что-то указывает на символическую ссылку /usr/lib/jvm/default-java как на дом JDK, и что символическая ссылка указывает на другую версию JDK, чем предполагалось?

Вы пытались сбросить альтернативы для всех инструментов Java до версии 7? Вот так:

update-java-alternatives --list
# ...see what JDK 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) - нет пути к выходному каталогу проекта и соответствующему пакету.

Итак, я установил 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,
  • double проверяет все переменные среды (мои JAVA_HOME и JDK_HOME оба указывают на /usr/lib/jvm/default-java),
  • надлежащим образом перенастроил SDK моего проекта (и для всех модулей в проекте),

и вуаля - проблема решена!

Ответ 2

Решил. Удалите все jdk/jre, которые у вас есть, установите openjdk7.

Добавьте эту строку в .bashrc

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386/
export PATH=$PATH:$JAVA_HOME/bin

Запустить идею. Прибыль.:)

Ответ 3

У меня возникла такая же проблема. Я обнаружил, что базовая общесистемная версия Java не имеет значения, поэтому нет необходимости устанавливать JAVA_HOME или update_alternatives. Все, что мне нужно было сделать, это изменить некоторые настройки в IDEA:

  • Добавить Java SDK, либо OpenJDK 7, либо Oracle JDK 6 или 7 (File -> Project structure -> SDKs)
  • Выберите его как Project SDK (File -> Project structure -> Project)

Ответ 4

Убедитесь, что флажок Сделать включен, иначе IDEA не будет компилировать ваш проект, также проверьте, что файл класса доступен в каталоге вывода, и вы работаете с пути к классу правильного модуля.

Если проблема остается, отправьте примерный проект для поддержки.

Ответ 5

Я столкнулся с той же проблемой - я переместил свои проекты (и настройки Idea) с ноутбука с Ubuntu 10.04 и sun-jdk-6 на ПК с Ubunty 11.10 и openjdk-6. После восстановления проекта я получил ошибки MyClass.class (No Such file or directory) для ВСЕХ классов.

Благодаря Ярославу его (почти) решение помогло - я не могу объяснить, почему, возможно, это будет работать и с sun-jdk-6... Итак, я установил openjdk-7, не удаляя openjdk-6, и поставил 7-й проект JDK в Idea. (Я ничего не менял в переменных среды.) С jdk7 он скомпилирован.

PS Я должен был написать это как комментарий к сообщению Ярослава, а не отдельный ответ, но у меня пока нет достаточной репутации, чтобы сделать это...

Ответ 6

Попробуйте запустить IDEA с помощью

sh -c "export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386 && ./idea.sh"

При запуске нажмите Ctrl+Alt+Shift+S, чтобы открыть диалоговое окно "Параметры проекта". На левой панели выберите Проект и убедитесь, что Проект SDK настроен правильно (по крайней мере, он не красный).