断点断不了

一个java类里面的某个方法断点断不了,sysout输不出,而其他方法都正常,晕了。

重新编译,重启tomcat,删了tomcat下的文件再部署。。都没用。。。

那个方法是strut2调用,我怀疑是一直调用的原先的class(class名没变过),因为即使把这个方法删了程序也一样执行(.class文件是最新的)。

我也不明白为什么一个class中,部分方法是今天的代码,而只有那个方法以及子方法都是昨天的东西。难道MyEclipse编译一个文件是选择部分文件内容编译的?

比较乱,不知道有没有人遇到过,谢谢!

clear 之后去看看 .class 文件是否已经被删除 --- 我都是这么看的.
你这个问题, 我觉得不能过于纠结 .class 是否正确生成吧. 错误应该存在于其他方面.

不明白,你看下在不调试的情况下system.out.println能有结果吗,可能程序没走到那个方法去呢。

按照你的说法,貌似不可能,没见过

[quote]
那个方法是strut2调用,我怀疑是一直调用的原先的class(class名没变过),因为即使把这个方法删了程序也一样执行(.class文件是最新的)。

我也不明白为什么一个class中,部分方法是今天的代码,而只有那个方法以及子方法都是昨天的东西。难道MyEclipse编译一个文件是选择部分文件内容编译的?
[/quote]
从未见过这种问题
MyEclipse clear project(clear 之后手动检查 .class 是否都已删除), 再重新编译整个 project 试试.

可以的话, 贴出代码看看.

[quote]我clear之后,看了webapps下的那个.class文件的时间是最新的,没有反编译出来看看,那个时间会不会是迷惑人的?那你看一个.class是不是最新的是不是看它的时间?[/quote]

看时间不是唯一性 最好还是反编译一下 因为有可能涉及到不同JDK版本 编译出结果是不同的问题 也有可能是类有问题 便宜一半中途就停止编译了

  1. 看是不是和什么冲突了。如一个project的两个不同版本而已。断点进入了老版本。 2.检查一下你的build path。 该代码是否是当前project的,如不是,把那个project放进你当前project的build path.