调试时源代码与字节码 IntelliJ 15 不匹配

Sun*_*mar 5 java intellij-idea

在 IntelliJ 中调试 Java 代码时遇到问题。

我已连接到远程服务器,正在使用 Maven 构建我的项目,并且项目正在正确构建,已多次验证。

每次插入调试点时,IntelliJ 都会返回一条错误消息“在那一点没有可执行代码”。虽然插入了一些断点,但 IntelliJ 在执行时返回错误消息“源代码与字节码不匹配”。

尝试过各种链接中提供的解决方案,例如:使用同步选项、使缓存无效、重建等。

Cra*_*der 4

您需要绝对确保 IDE 中的源代码与远程 JVM 中加载的类相对应。

可能是类路径中存在一些额外的 jar,其中包含较旧的类版本,这些版本会覆盖较新的版本,或者代码是在没有调试信息的情况下构建的,或者某些注释处理器/混淆器在构建过程中更改了目标类。

使用javap或 反编译器可以帮助检测不同步的类。

正如您在评论中提到的,服务器上运行的代码与 IDE 中的代码来自不同的 git 分支。通过在 IDE 中重建项目并将实际代码部署到服务器可以避免这种情况。