Невозможно установить точку останова Java в Intellij IDEA
Я пытаюсь поставить точки останова в источники GoogleAppEngine (SDK 1.7.0), но IDEA Ultimate (11.0.2) просто говорит мне Warning: No executable code found at line 482 in class com.google.appengine.api.memcache.AsyncMemcacheServiceImpl
.
Я получаю это сообщение об ошибке как при запуске кода из модульных тестов, так и при запуске сервера разработки.
Это довольно раздражает. Во всяком случае, мои источники находятся во внешнем каталоге (как дома, так и дома проекта IDEA), а мои файлы jar находятся в каталоге Appengine SDK lib.
Мои файлы jar добавляются как библиотека проекта в модуль, и мои источники прикреплены к этой библиотеке. Я тоже играл с зависимостями модулей, но без везения. Наконец, я решил поместить эту библиотеку в область компиляции, но это была плохая идея, так как SDK предоставляет эти банки во время выполнения, поэтому я решил вернуться в область "Предоставление".
Я также играл с флажком экспорта на вкладке зависимостей модулей, но я думаю, что это не имеет значения, в соответствии с веб-справкой, экспорт только важно, когда у вас есть зависимые модули, и вы хотите сделать вашу библиотеку доступной в этих модулях.
В любом случае, этот вопрос возник еще 4 года назад. Поэтому мне сейчас интересно, неужели так сложно решить эту проблему?
Сейчас я очень разочарован. У меня не было никаких проблем с IDEA до сих пор... Я видел, что эта проблема возникла и для других людей, поэтому это не уникально, я думаю.
Любая помощь приветствуется.
Я редактировал свой вопрос из-за моих экспериментов javap
: Кажется, что классы и источники НЕ не синхронизированы. Я проверил относящуюся к версии 1.7.0 версию из SVN, и я использую 1,7.0 SDK, поэтому они не должны полностью синхронизироваться.
Ответы
Ответ 1
У меня были подобные проблемы, и были применены различные попытки. Ниже приведены мои обычные шаги:
- Если вы используете зависимости Maven, перейдите в Maven Projects → refresh
- Если это не работает, попробуйте меню верхнего уровня → Сборка → Проект перестройки
- Если это все еще не работает, попробуйте меню верхнего уровня → Файл → Недействительный кэш/перезагрузка
- Если это все еще не работает, то $CATALINA_BASE/bin/catalina.sh остановится, затем запустите
После этого обычно он покрывает 99% проблем. В противном случае, вероятно, вам придется изучить некоторые другие возможности.
Ответ 2
У меня была аналогичная проблема в Intellij. Я не смог установить точку останова в одном фрагменте кода, я изменил номер строки кода, а затем смог установить точку останова. Похож на ошибку в intellij
Ответ 3
Я обнаружил некоторые другие случаи, когда люди сообщали, что IDEA говорит: "Не найдено ни одного исполняемого кода". Общим примером является то, что они пытались отлаживать код, который был построен без отладочной информации. Убедитесь, что вы компилируете флаг "-g" (или эквивалентный).
Ответ 4
Суть проблемы заключается в том, что JVM выполняет файл класса (либо простой класс, либо класс, загруженный из jar из пути к классу), который НЕ ПОДКЛЮЧАЕТ источник, используемый отладчиком.
Как только это будет понято, решение прост: убедитесь, что источник представляет выполняемый класс.
Итак, чтобы исправить проблему, вы можете обновлять-синхронизировать источники с классами и т.д.
Ответ 5
Вопрос довольно старый, но я думал, что мой опыт может помочь кому-то в будущем. В моем случае я пытался отлаживать код, который не был скомпилирован с отладочной информацией. Я использую maven, в котором исходный родительский файл pom до модификации выглядел примерно так, как показано ниже в разделе сборки.
<build>
<pluginManagement>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.1</version>
<configuration>
<target>${javaCompilerVersion}</target>
<source>${javaCompilerVersion}</source>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!--More plugins...-->
</pluginManagement>
</build>
Я изменил приведенный выше раздел, чтобы он выглядел ниже.
<build>
<pluginManagement>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.1</version>
<configuration>
<target>${javaCompilerVersion}</target>
<source>${javaCompilerVersion}</source>
<encoding>UTF-8</encoding>
<debug>true</debug>
<debuglevel>lines,vars,source</debuglevel>
</configuration>
</plugin>
<!--More plugins...-->
</pluginManagement>
</build>
Обратите внимание на добавленные элементы <debug>
и <debuglevel>
. элемент debuglevel может принимать любую комбинацию из трех аргументов, разделенных запятыми.
После компиляции с этим изменением мне наконец удалось установить точки останова в IDEA.
Ответ 6
Я смог исправить эту проблему, перекомпилировав рассматриваемый класс:
Build → Recompile (filename.java)
Ответ 7
У меня была аналогичная проблема, и это было вызвано ошибкой в моей конфигурации Tomcat на вкладке "Развертывание" "Развертывание при запуске сервера". Я случайно сменил его на очень похожий проект: "война взорвалась". Когда я изменил его, он работал нормально.
Ответ 8
Пожалуйста, убедитесь, что вы не запускали Proguard. Это помогло мне.
Ответ 9
Меню → Файл → Недействительный кэш/перезагрузка
Это работало для меня в IntelliJ 13.0.2
Ответ 10
Если вы используете некоторые серверы, они перейдут в "режим с низкой памятью", это означает, что они не будут отлаживать вас, независимо от того, какие параметры или кеши вы не выполняете.
Вы должны остановить свой сервер, увеличить параметры памяти в параметрах, передаваемых в java, и перезагрузить сервер. Проверьте журналы, чтобы убедиться, что вы не получаете такой отчет, как "работа в режиме низкой памяти".
Ответ 11
При той же проблеме выяснилось, что версия кода на сервере и тот, который я отлаживаю, различны. После синхронизации кода проблема была решена.
Ответ 12
В моем случае я убил все запущенные процессы на устройстве, отключил и снова подключил его.
Ответ 13
У меня была такая же проблема с использованием конфигурации отладки в моем случае Tomcat.
Я пробовал все выше, но ничего.
когда я только что переконфигурировал Tomcat (debug > edit configuration > удалить tomcat > добавить его снова с нуля), он, наконец, работал:)
Ответ 14
Проверьте пространство на диске и освободите память. Если на вашем диске недостаточно места, даже если ваш сервер не находится в режиме "низкой памяти", intelliJ не будет выделять пространство для кэширования классов, необходимых для отладки. В результате он не позволит вам установить точку останова.
Ответ 15
Я работал над плагином Intellij, и когда появилась песочница Intellij, что окончательно решило мою проблему, как только всплыла песочница intellij, я перестроился оттуда.
После этого я собрал и свой Intellij, и песочницу Intellij, и они наконец синхронизировались.
Ответ 16
У меня была такая же проблема. Я не знаю почему, но для меня помогло добавить любую модификацию в код, такую как добавление или удаление комментария. Странно, но это решило мою проблему
Ответ 17
Перезагрузите компьютер.
Он решил мое дело.
простой лучший..