Подтвердить что ты не робот

Невозможно установить точку останова 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, поэтому они не должны полностью синхронизироваться.

4b9b3361

Ответ 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

Перезагрузите компьютер. Он решил мое дело. простой лучший..