eclipse为什么不能在静态块代码中设置断点

时间:2016-05-25 08:36:38

标签: eclipse breakpoints

Maven项目有一个依赖jar - log4j-1.2.14.jar

<dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.14</version>
</dependency>

执行junit test时有以下错误信息

java.io.FileNotFoundException: /Users/foo/Documents/logs/info.log (No such file or directory)
...
at org.apache.log4j.LogManager.<clinit>(LogManager.java:122)
at org.apache.log4j.Logger.getLogger(Logger.java:104)
...

我想在LogManager.java 122行中设置断点,但它不能。 enter image description here

奇怪的是,我可以在同一个类的其他部分成功设置断点。然后我发现122行是静态块代码。

static {...}

似乎静态块代码中的一行,它不能在这里启用断点。

那为什么会这样?

1 个答案:

答案 0 :(得分:0)

晚了,但也许对某些人还是有帮助的。我有与OP类似的经验,但是后来注意到Eclipse实际上确实设置了一个断点。不过,这不是我单击的位置处的断点,而是在课程开始时在编辑器中标记的类断点,这比我感兴趣的行高了很多。