今天在项目运行中,想整个debug来看下数据,结果出出现了一个禁止符号,提示我line number info is not available in class的问题,图标如下,可以对比一下:
一、解决问题
网上很多的帖子说我是禁用了debug,但是事实并非如此!
我先说下我是怎么解决:
1、清理原本的.class文件
打开 【Maven菜单】,选择 对应报错项目的 【Lifecycle】,然后选择 【clean】 菜单,清理原本的target编译文件;
2、重新生成.class文件
选择IDEA最上层的【Build 】,继续选择 【Rebuild Project】,重新编译一下项目;
3、重新打包
再次选择maven打包菜单,然后这次选择 【Lifecycle】下面的【install】菜单,如果此时打开原本的编译目标文件夹的时候,可以看到原本在clean环节被删除的target目录重新建立,并生成了新编译文件了;
二、报错原因
后面与同事讨论,发现出现这个是因为在IDEA在debug模式下是不能够改动文件的,改动之后会导致项目的class和java文件对不上,然后就会报上面那个错误了。
大概的原理是,原本编译后的.class文件与java文件其实是一个一一对应的关系,但是现在如果改动了文件,或者是使用的是之前的编译文件的时候,就会导致java与class不能够一一对应上,就是如title中所示的错误提示信息一样。
所以解决的思路也是让java与class保持一致即可!结合最近学习到的一个道理,解决问题不能够停留在问题层面,而是要深入到问题里面,去解决问题的根本!
三、Eclipse环境下解决
eclipse的解决方法与IDEA的方法大致一样,选择顶层菜单的【Project】,然后选择【Clean】即可清理掉原本的.class文件,后面运行的时候就可以重新生成了.class文件了。