IntelliJ Идея под Linux, нет такого файла или каталога в основном классе - PullRequest
10 голосов
/ 07 ноября 2011

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

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

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

ОК. Я размещаю здесь пути и все, чтобы все могли их увидеть:)

type : echo $ PATH
Результат: / usr / lib / lightdm / lightdm: / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / games: / usr/ Библиотека / JVM / Java-7-OpenJDK-i386 / бен: / USR / Библиотека / JVM / Java-7-OpenJDK-i386 / бен: / USR / Библиотека / JVM / Java-7-OpenJDK-i386 / бен

тип: echo $ JAVA_HOME Результат:
/ usr / lib / jvm / java-7-openjdk-i386

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

Ответы [ 6 ]

7 голосов
/ 14 ноября 2011

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 ...

Итак, я:

  1. обновил конфигурацию альтернатив, как указано выше,
  2. изменил символьную ссылку /usr/lib/jvm/default-java, указав на java-7-openjdk-amd64,
  3. дважды проверил все переменные среды (мои JAVA_HOME и JDK_HOME обе указывают на /usr/lib/jvm/default-java),
  4. соответствующим образом перенастроил SDK моего проекта (и для всех модулей впроект),

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

5 голосов
/ 07 ноября 2011

Решил это. Удалите все имеющиеся у вас jdk / jre, установите openjdk7.

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

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

Выполнить идею. Прибыль. :)

2 голосов
/ 22 ноября 2011

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

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

Попробуйте запустить IDEA, используя

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

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

0 голосов
/ 08 ноября 2011

Я столкнулся с той же проблемой - я перенес свои проекты (и настройки 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 Я должен был написать это как комментарий к посту Ярослава, а не как отдельный ответ, но у меня пока не хватает репутациисделать это ...

0 голосов
/ 07 ноября 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...