无法在 Intellij IDEA 中设置 Java 断点

我试图将断点放入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在运行时提供了这些jar,所以我决定回退到提供范围。

我还使用了模块依赖项选项卡上的导出复选框,但我认为这无关紧要,根据Web帮助,导出仅在您具有依赖模块并且希望使库在这些模块中也可用时才重要。

无论如何,这个问题也是在4年前出现的。所以我现在想知道解决这个问题是否真的那么难?

我现在非常失望。到目前为止,我对IDEA没有任何问题...我看到这个问题也出现在其他人身上,所以我想这不是独一无二的。

任何帮助是值得赞赏的。


由于下面的实验,我编辑了我的问题:似乎类和源不是不同步的。我从SVN中查看了1.7.0相关版本,并且我正在使用1.7.0 SDK,因此这些版本应该不会完全不同步。javap


答案 1

我遇到了类似的问题,并且已经应用了各种尝试。以下是我的常用步骤:

  1. 如果您使用的是 Maven 依赖项,请转到 Maven 项目 ->刷新
  2. 如果这不起作用,请尝试顶部菜单 --> 生成 --> 重新生成项目
  3. 如果仍然不起作用,请尝试顶部菜单 --> 文件 -->使缓存失效/重新启动
  4. 如果这仍然不起作用,则$CATALINA_BASE/bin/catalina.sh停止,然后启动

在此之后,通常它涵盖了99%的问题。否则,您可能必须检查其他一些可能性。


答案 2

我在intellij中调试时遇到了类似的问题。我无法在其中一个代码片段上放置断点,然后我更改了代码的行号,之后我能够放置断点。看起来像 intellij 中的错误或某些缓存问题。