Intellij idea компилируется не тот файл
Я новичок в Java и пытаюсь запустить свой код, используя IntelliJ, который я только что установил в качестве своей IDE с JDK 1.7. Следующий фрагмент кода даже не компилируется и продолжает выдавать ошибку:
Есть ли какие-либо изменения, которые я должен сделать в настройках компилятора? Или это код.
Как уже упоминалось в QuantumMechanic, ваш основной класс должен находиться в файле с таким же именем. Таким образом, libTest должен находиться в файле Java с именем libTest.java, иначе компилятор java будет жаловаться. Кроме того, вы создали источник через IDEA, или вы создали новый проект IDEA поверх существующего источника?
Это может помочь:
1) Меню «Построить» -> « Rebuild Project ». Иногда Intellij не переписывает классы, потому что они уже существуют, таким образом, вы просите Intellij переписать все.
2) Меню «Выполнить» -> « Edit configuration » -> удалить профиль -> добавить профиль («Приложение», если это приложение Java), выберите свой основной класс в раскрывающемся меню «Основной класс».
3) Меню «Построить» -> « Rebuild Project ».
Второй вариант сработал для меня. Но удалите профиль конфигурации, а затем щелкните правой кнопкой мыши свой класс ->
Я удалил .idea, .mvn и другие целевые каталоги, затем перезапустил IntelliJ. Зашел в журнал событий, добавил проект как проект Maven, а затем выполнил шаги, упомянутые здесь @Kishore. Это работает сейчас.
Затем откройте проект с IntelliJ. Это должно работать сейчас.
Это сработало для меня. Я также повторно импортировал свой проект в IntelliJ, но для опции «Групповые модули» я использовал «использование квалифицированных имен» (вместо «использования явных групп модулей».
это тоже сработало для меня, я большой поклонник Intellij, но они должны научиться делать простые вещи тоже.
Вполне возможно, что мое решение на самом деле представляет собой тонкий вариант ответа @ Ehsan ниже. Возможно, указав целевой каталог, он дает ему новое местоположение, в котором компилируются все объекты, по существу выполняющие ту же работу, что и a Rebuild Project .
@UncleIroh Если это сделало ту же самую работу, перестроение + чтение конфигурации. исправил бы проблему изначально. Это не так, но ваше решение сделал.
У меня была эта проблема, и я попробовал все под солнцем, что я мог придумать и на этом сайте.
Ни один из моих классов Java не был поднят после того, как я извлек из удаленной ветви. У всех классов были красные J по именам в иерархии проекта, а не синие C.
Вот что я сделал:
По какой-то причине у всех моих классов были синие буквы "Си".
Кто-то, кто лучше понимает, как IntelliJ и / или IDE могут объяснить это явление, но я знаю только то, что теперь он может видеть все классы и, что более важно, основной и запускать.
У меня это сработало только после того, как я закрыл Intellij, удалил папку .idea, затем снова открыл Intellij и выполнил шаги, описанные выше.
Явно создайте out папку и затем установите выходной путь C:\Users\USERNAME\IdeaProjects\PROJECTNAME\out
казалось, работал для меня, когда просто out , и ожидание, что IntelliJ сделает папку, не будет.
Также попробуйте, чтобы IntelliJ создал новую конфигурацию запуска:
Найти предыдущий, нажав
затем удали его
и ударил в порядке.
Теперь (ВАЖНО ШАГ) откройте класс, содержащий ваш метод main. Это, вероятно, проще всего сделать, нажав на имя класса в левой части панели проекта.
Дайте Alt + Shift +, F10 и вы должны получить
Теперь ударил Enter !
Конфигурация запуска работает, особенно если вы переместили main() функцию из class Main другого класса. В этом случае отредактируйте конфигурацию запуска, как показано выше, и измените значение «Основной класс» на свое имя класса (полностью определенное).
Я не мог не заметить, что вы почувствовали название вашего проекта и запустили конфигурацию, но это все еще хорошо видно на втором снимке экрана
Джейкоб Шнайдер, это так. Я не могу вспомнить, почему я подверг цензуре это - вероятно из-за неуместного изобилия предостережения.
Сделайте недействительным кеш и перезапустите ваш intellij, он работал для меня.
Особо хочу поделиться тем, что иногда код не компилируется (не собирается), даже если ваша конфигурация запуска указывает «Сборка» в разделе «Перед запуском» панели конфигурации.
Когда это может произойти? Это может произойти в том случае, если вы используете модули и вручную удаляете каталог out модуля. Например, если у меня есть модуль с именем "foo", в каталоге out / production должен быть каталог с именем foo. Если вы удалите его вручную, система сборки может не знать, что его нужно восстановить.
Еще хуже, если вы выберете Build | Сборка модуля 'foo', он все равно может не перестроить модуль. Если это так, вы должны выбрать файл в модуле, например, 'bar.java', а затем выбрать Build | Перекомпилируйте 'bar.java'. Теперь выходной каталог out / production / foo должен быть восстановлен.
Поскольку IntelliJ обычно знает о любых происходящих изменениях, это удивило меня и заняло у меня немного времени, чтобы разобраться, поэтому я решил поделиться.
Проверьте ваш модуль класса : я столкнулся с этой проблемой с intellij: у меня есть многомодульный проект Maven, проблема в том, что я запускаю класс, который не существует модуля в конфигурации, поэтому моя проблема решается путем установки правильного модуля ( "изменить конфигурацию" -> "использовать класс модуля")
может ли это помочь вам
У меня тоже сработало. Спасибо! Возможно, что-то пошло не так при установке обновления IntelliJ или плагина Scala. После этого вы получите эту странную проблему. Очень раздражает и отнимает много времени. Надеюсь, JetBrains найдет решение.
Мне пришлось пометить папку "src" как "Источники". После перезапуска IntelliJ и перестройки проекта я мог запустить проект без дальнейших проблем (см. Скриншот ). Редактировать: Вы можете перейти на вкладку «Структура проекта» через Файл-> Структура проекта или нажав Ctrl + Shift + Alt + S.
Если у вас (как и у меня) нет вкладки «Источники», то вы должны добавить новый модуль (нажмите зеленый +) и выберите свою основную папку в качестве источника. Ничто не будет перезаписано, а папка src станет синей.
Откройте вкладку «Модули» (нажмите Ctrl + Shift + Alt + S). У меня было два модуля в рамках одного проекта. Я решил проблему после удаления второго избыточного модуля (см. Скриншот).
Я сталкивался с такими проблемами, когда класс находится в папке по умолчанию, т.е. когда класс не объявляет пакет.
Что ж, оператор пакета должен совпадать с тем, куда IDE поместил файл. Если среда IDE не поместила файл в sourceBase /, org/confused/mailman добавление этой строки пакета не поможет.
Я предполагаю, что IDE поможет с этим и автоматически исправит это, если выбрано рекомендуемое исправление.
не помогает: / .. IDE, кажется, не беспокоит какие-либо изменения, которые я делаю .. она выдает вышеуказанную ошибку и бездельничает и расслабляется
Файл> Структура проекта> Модули> Пометить папку "src" как источники. Это должно решить проблему. Также убедитесь, что выбран последний язык, чтобы вам не приходилось менять код или вносить какие-либо изменения в конфигурацию.
В моем случае проблема, казалось, была связана с обновлением IntelliJ. Когда я сделал это, я переписал файлы старого IntelliJ с файлами нового IntelliJ (сообщество от 2017 до 2018). После этого все мои проекты были разбиты. Я пробовал все в этой теме, и ни один из них не работал. Я попытался обновить Gradle до последней версии (от 4 до 4.8), и это не сработало. Единственное, что мне помогло, - это удалить всю папку IntelliJ и переустановить ее. Все мои проекты работали после этого.
Кажется, это действительно так. Я использую переносной intellij, поэтому я переименовал основную папку, как из, idea\bin чтобы быть idea_old\bin и переименовал папку настроек, в %user%\username которую .IntelliJIdea2018.2 нужно .IntelliJIdea2018.2_old затем повторно извлечь intellij zip файл, чтобы начать использовать его в качестве новой новой переносной версии (это версия 2018.2.1) с Spring Загрузочное приложение из нескольких отдельных модулей (не связанных в одном родительском pom.xml), каждое из которых является весенним загрузочным приложением со своим собственным pom.xml и вуаля . Все работает, целевая папка создана, компилируется перед запуском через панель весенней загрузки.
"Да не изобрети ты велосипед" - одно из главных правил успешной и эффективной работы. Но что делать, когда свой велосипед изобретать не хочется, а у чужого руль оказался кривой, а колёса квадратными? Данный обзор предназначен для по возможности краткого ознакомления с приёмом исправления в чужих библиотеках "на крайний случай" и о том, как это дело распространить дальше своего компьютера.
Введение
- Подготовить испытуемое приложение для примера (на примере Hibernate проекта)
- Поиск изменяемого места
- Выполнение изменения
- Разворачивание репозитория
Выполнение изменения
Нам нужно воссоздать структуру каталогов в соответствии с тем, в каком пакете лежит изменяемый нами класс. В данном случае: mkdir org\hibernate\query\internal , после чего создаём в этом каталоге файл NativeQueryImpl.java . Теперь открываем данный файл и копируем туда всё содержимое класса из IDE (то самое, которое для нас декомпилировала Idea). Изменяем нужные строки. Например:
- [1] - hibernate-core-5.2.17.Final.jar
- [2] - hibernate-jpa-2.1-api-1.0.0.Final.jar
Ура, теперь можно выполнить jar update. Можем руководствоваться официальными материалами: jar uf hibernate-core-5.2.17.Final.jar org\hibernate\query\internal\*.class Открытая IntelliJ Idea, скорей всего, не даст изменять файлы. Поэтому до выполнения jar update, скорей всего, придётся закрыть Idea, а после обновления - открыть. После этого можно заново открываем IDE, опять выполняем dubug. Break Points не сбрасываются между перезапусками IDE. Поэтому, выполнение программы остановится там, где и раньше. Вуаля, мы видим как работают наши изменения:
Отлично. Но тут возникает вопрос – благодаря чему? Просто благодаря тому, что когда gradle собирает проект, он анализирует блок dependencies и repositories. У грэдла есть некий build cache, который лежит в определённом месте (см. «How to set gradle cache location?». Если в кэше нет зависимости, то Gradle её скачает из репозитория. Т.к. мы меняли jar в самом кэше, то Gradle думает, что в кэше библиотека есть и ничего не выкачивает. Но любая очистка кэша приведёт к тому, что наши изменения пропадут. Плюс, никто кроме нас не может просто взять и получить их. Сколько неудобств, не правда ли? Что же делать. Хм, скачивает из репозитория? Значит, нам нужен наш репозиторий, с преферансом и поэтессами. Об этом следующий этап.
Подготовка испытуемого
Прежде чем выполнять импорт проекта внесём некоторые изменения в файл, описывающий, каким образом нужно выполнять сборку. Этот файл называется build script’ом и имеет имя build.gradle. Находится он в том каталоге, в котором мы выполнили gradle init. Поэтому, просто открываем его (например, в windows командой start build.gradle). Находим там блок «dependencies», т.е. зависимости. Тут описываются все сторонние jar, которые мы будем использовать. Теперь надо понять, что тут описывать. Перейдём на сайт Hibernate (http://hibernate.org/). Нас интересует Hibernate ORM. Нам нужен последний релиз. В меню слева есть подраздел «Releases». Выбираем «latest stable». Проматываем вниз и находим «Core implementation (includes JPA)». Раньше нужно было поддержку JPA подключать отдельно, но теперь всё стало проще и достаточно только одной зависимости. Также нам понадобится при помощи Hibernate работать с базой данных. Для этого возьмём самый простой вариант – H2 Database. Выбор сделан, вот наши зависимости: Отлично, что дальше? Надо настроить Hibernate. У Hibernate есть «Getting Started Guide», но он дурацкий и больше мешает, чем помогает. Поэтому пойдём как правильные люди сразу в «User Guide». В оглавлении видим раздел «Bootstrap», что переводится как «Начальная загрузка». То что надо. Там написано много умных слов, но смысл в том, что на classpath должен быть каталог META-INF, а там файл persistence.xml. На classpath по стандарту попадает каталог «resources». Поэтому создаём указанный каталог: mkdir src\main\resources\META-INF Создаём там файл persistence.xml и открываем его. Там же в документации есть пример «Example 268. META-INF/persistence.xml configuration file» из которого мы возьмём содержимое и вставим в файл persistence.xml. Далее запускаем IDE и импортируем в неё наш созданный проект. Теперь нам нужно что-то сохранять в базу. Это что-то называется сущности. Сущности представляют что-то из так называемой доменной модели. И в оглавлении, о чудо, видим «2. Domain Model». Спускаемся ниже по тексту и видим в главе "2.1. Mapping types" простой пример сущности. Забираем его к себе, чуть сократив: Теперь у нас появился класс, представляющий сущность. Вернёмся в persistence.xml и поправим там одно место: Там где указан class укажем свой класс entity.Contact . Отлично, осталось запуститься. Возвращаемся в главу «Bootstrap». Так как у нас нет сервера приложений, который нам предоставит особое EE окружение (т.е. окружение, которое реализует для нас определённое поведение системы), то мы работаем в SE окружении. Для него нам подойдёт только пример «Example 269. Application bootstrapped EntityManagerFactory». Например, сделаем так: Ура, наш испытуемый готов. Эту часть я не хотел опускать, т.к. для следующих глав желательно понимать то, как появился наш испытуемый.
Поиск изменяемого поведения
Давайте встанем на место инициализации поля count типа BigInteger и поставим там точки останова (BreakPoint). Встав на нужной строке это можно сделать при помощи Ctrl+F8 или через меню Run -> Toggle Line Breakpoint. После чего запускаем наш main метод в дебаге (Run -> Debug):
Немного неуклижий пример, но, допустим, мы хотим изменить количество query spaces при старте. Как мы видим, наш sqlQuery это NativeQueryImpl. Нажимаем Ctrl+N , пишем название класса, переходим в него. Чтоб при переход в класс нас перебрасывало на то место, где лежит этот класс включил автоскрол:
Сразу заметим, что Idea не знает сейчас, где можно найти исходный код программы (исходники, то есть). Поэтому она милостиво декомпилировала для нас из class файла содержимое:
Заметим так же, что в заголовке окна IntelliJ Idea пишется, где Gradle сохраняет для нас артефакт. Теперь, получим в Idea путь, где лежит наш артефакт:
Перейдём в этот каталог в командной строке при помощи команды cd путь к каталогу . Сразу сделаю замечание: если есть возможность собрать проект из исходников, лучше собирать из исходников. Например, исходный код Hibernate доступен на официальном сайте. Лучше забрать его для нужной версии и сделать все изменения там и собраться при помощи скриптов сборки, которые указаны в проекте. Я же привожу в статье самый ужасный вариант – есть jar, а исходного кода нет. И замечание номер 2: Gradle может получить исходный код при помощи плагинов. Подробнее см. «How to download javadocs and sources for jar using Gradle.
11 Answers 11
Settings | Compiler | Excludes .
For Intellij 14.0 on Windows, undo excludes from compilation
Then inside Settings -> Build, Execution, Deployment -> Compiler -> Excludes
or just search for "excludes" to find it.
Note in IDEA v12, there is no longer a File | Settings menu option. I'm not sure how to exclude/re-include individual files, but this is how it works for folders.
Now the menu item is File | Project Structure. and that brings up a multi-column dialog. In the rightmost column, click Modules, then select the directory that contains the excluded folder in the second column. If it is a folder you are trying to re-include, it is listed in the third column's directory list, and excluded folders are at the bottom, in red. If you click on the red 'X' to the right of the folder name, it will remove the folder from the "excluded" list which has the effect of including it back in the project. Awkward and counter-intuitive, but that's how it works.
I found that johnkaplantech's answer didn't work because Idea would complain about multiple modules sharing the same root.
So I manually edited the project files to remove the exclusion. File modified was %ProjectRoot%/.idea/modules/.iml . Inside module/component/content of this XML file was a tag excludeFolder . Remove that.
on 2019 community Edition - on Ubuntu Open .idea Folder -> compile.xml .. Its easy to exclude .. but go crazy as how to include ..huh
In IntelliJ IDEA 15.0.3 File | Settings | Build, Execution, Deployment | Compiler | Excludes | (Remove path from right list).
че я только не делала - перерыла весь интернет - все что писали - пробовала, хотя понимания, что я делала нет тупо по инструкциям что-то отключала. В итоге не работает все равно.
Intellij Idea
Ошибка с @Test. Test package Main; import org.junit.jupiter.api.BeforeEach; import.
IntelliJ IDEA
Здравствуйте. Столкнулся сегодня с проблемкой в IntelliJ IDEA Community Edition 14.1.1, после.
intellij idea
Здравствуйте! Помогите, у меня есть код на java, только незнаю как его вставить в intellij idea.
IntelliJ-IDEA-4.5 ключ
Дайте плиз ключ на прогу.
Присоединяюсь к предыдущему оратору, vinagareza, беги оттуда
- На проекте около 800 тысяч пользователей. Это неправда. Большая часть пользователей это мертвые души, в чем можно убедиться на самом сайте
- Полностью прошли курс по той же статистике только около 1 тысячи человек за все время. (получившие 40 уровень и это даже без учета прохождения стажировки - их еще меньше)
- 5го сентября 2017 цена подписки увеличилась в 2 раза. Убраны бесплатные уровни.
- Не исправляются ошибки при проверке заданий.
Задания выполняются в IDE intellij idea и плагином от JavaRush, однако довольно часто из за криво написанного кода, а еще чаще из-за морально устаревшего - выполнить задание практически невозможно.
- С момента выхода версии 2.0 Администрация анонсировала выход 2х новых веток курса по 10 дополнительных уровней в каждом (SQL & Hibernate и JSP & Services), о чем не забывает напоминать в рекламе, но ни в прошлом году и ни в этом - 2018 они так и не выйдут.
- Реклама. Оно на проекте повсюду. "Истории Успеха", отдельные посты - по факту те же "Истории", в комментариях, в акциях. И ни одного отрицательного комментария.
- Отрицательные комментарии удаляются, а написавшего ждет мут на несколько дней или бессрочный. На проекте в принципе нельзя "задизлайкать" пост или комментарий - только 0 и выше.
- Связь с Администрацией и техподдержка официально есть, но заставить ответить практически невозможно.
- Крайне неудобная система оплаты. Довольно частая проблема - карты не принимаются или банк блокирует карту после нескольких попыток оплаты по подозрению в мошенничестве.
- Огромное количество фейковых аккаунтов использующихся для рекламы JavaRush.
Итог: яркий пример как погоня за прибылью способна уничтожить отличный проект, который в свое время был одним из лучших. Отвратительное отношение Администрации к своим пользователям, отсутствие техподдержки, жесткая цензура - это все что может предложить JavaRush в данный момент.
Небольшое дополнение
Компания ушла из habrahabr.
Добавлено через 6 минут
Даже тут, на форуме, несколько раз встречал людей, которые вовремя спохватились и продавали свою подписку по-дешевке
В моем проекте IntelliJ есть файл freemarker (ftl), который неправильно распознается как текстовый файл. Есть много правильных однотипных. Мне известна опция «Пометить как текст». Это может быть исходной причиной, по которой этот файл был помечен как текстовый, но мне не предоставлена опция «пометить как ftl файл», чтобы вернуть его обратно, если это действительно проблема. Если я помечу другие файлы ftl как txt, я смогу превратить их обратно в файлы ftl, как и ожидалось.
Кажется, что это дубликат, но кто-то вроде меня НИКОГДА не нашел бы его, потому что он не помечен должным образом, чтобы его можно было найти таким образом. Я не знал, что Pycharm был продуктом JetBrains. Как вы думаете, как эти два вопроса должны быть связаны симантически? Существует проблема с тем, как Jetbrains маркирует свои продукты отдельно, так что, например, PHPStorm звучит как нечто совершенно иное, чем Pycharm. Я ценю вашу помощь .
Другими словами, этот вопрос / ответ стоит сам по себе. С точки зрения людей, ищущих этот ответ для IntelliJ, этот вопрос / ответ уникален.
Убедитесь, что этот файл (или шаблон, который его представляет) не указан в списке
Settings → Editor → File Types → Text files
Preferences → Editor → File Types → Text files
Хотя мне показалось, что это звучит странно, каким-то образом мой файл с точным именем оказался здесь (вместо сопоставления с подстановочными знаками это было имя файла). Не знаю, как это случилось.
Спас мне жизнь .. на самом деле я отдал случайно . файлы в текст . поэтому все открываются как текстовый файл.
Шаг 1. Нажмите «Файл» ==> «Настройки».
Шаг 2. Разверните «Редактор» и нажмите «Типы файлов».
Шаг 3: Вы увидите все типы файлов справа. Перейдите к «Текстовым файлам» и щелкните по нему.
Шаг 6: Если нет, удалите файл из проекта и создайте его снова с именем fileName.
OSX:
Windows:
У меня была такая же проблема, и ни одно из вышеперечисленных решений ее не решило. В конце концов, это было решено путем выбора модуля и перехода к настройкам модуля (нажмите F4 на имени модуля)
Затем на вкладке «Источники» выберите папку «java» и нажмите кнопку «Источники». Это сообщает IntelliJ, что рассматриваемая папка является папкой с исходным кодом.
Затем выберите папку Test и нажмите Tests.
Вот и все. Затем он правильно распознает файлы и при необходимости покажет ошибки.
Разворачивание репозитория
In Intellij, if I have an error in a source file, then when building I can choose "Exclude from Compile" by right-clicking on the file in the build output. But, now I would like to include the file again. Where is the menu item that lets me put it back into the build? (The file shows in the Project window, and has a small 'x' in its icon to show it is excluded, but I see no way to get this to go away.)
Edit - I found there is a compiler.xml file, and I found I can delete the file from the "excludeFromCompile" section, but still, there must be a menu item somewhere to do this.
Читайте также: