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

标签 java intellij-idea

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

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

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

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

最佳答案

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

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

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

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

关于java - 调试时源代码与字节码 IntelliJ 15 不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42176579/

相关文章:

java - 是否可以采用 IntelliJ IDEA 社区版进行 Web 开发?

java - 从 JSON 解析 Map 和 String 不起作用

使用 Java 9 和 Intellij Idea 不存在 JavaFX

java - 显示 ContextAttribs 和 GL11 投影矩阵模式 - 不支持功能

java - 将 BigDecimal 值添加到 editText - Android、Java

Java/IntelliJ 无法识别 Dagger2 组件的 "Dagger"关键字

scala - 尝试在 IntelliJ 中添加 Spark 依赖项时出现 OpenJDK Server VM 和 Unresolved 依赖项警告

java - 如何从android项目中完全卸载Twitter的Fabric SDK?

java - 在 Java 中将列表转换为具有正确扩展名的 JSON

java - Mockito Spring Boot 给出空指针异常