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 настроен правильно (по крайней мере, он не красный).