不知道为什么会出现这种情况...好的,这是情况:我在我的笔记本电脑上有一个nb项目。我在桌面上也有同样的项目。我将源代码(而不是整个项目)复制到桌面上,覆盖桌面上的源代码。一切都清理和构建正常。然后我启动调试器。在主类上,我可以逐步调试。如果它进入一个内部方法,下面就是发生的事情:
Listening on 37574
User program running
LineBreakpoint test.java : 45 successfully submitted.
Breakpoint hit at line 45 in class test by thread main.
Thread main stopped at test.java:45.
User program running
Not able to submit breakpoint LineBreakpoint baseControllerManager.java : 41, reason: No executable location available at line 41 in class baseClasses.JNW.baseControllerManager.
Invalid LineBreakpoint baseControllerManager.java : 41
Debugger stopped on uncompilable source code.
User program finished
正如您所看到的,当我在静态方法main中时它可以工作(第45行),但当我跳转到非静态方法(即重写方法)时,它就出现了这个问题... 我尝试过:
- 清理和构建 = 没有效果
- 手动删除构建和分发 = 没有效果
您有什么建议吗?
为了完整起见,我附上了主类的源代码:
import baseClasses.JNW.baseAction;
import baseClasses.JNW.baseContResult;
import baseClasses.JNW.baseController;
import baseClasses.JNW.baseControllerManager;
public class test {
public static class starter extends baseController {
public static final String ACTION_START = "ACTION_START";
@Override
public baseContResult doAction(baseAction action) {
if (ACTION_START.equals(action.action)) {
manager.log("action start...");
return new baseContResult(RESULT_OK, baseContResult.resultType.RESULT_OK);
}
return super.doAction(action);
}
@Override
public void init() {
super.init();
}
}
public void startMe() {
baseControllerManager manager;
try {
manager = new baseControllerManager();
} catch (Exception e) {
e.printStackTrace();
return;
}
starter st = new starter();
manager.setMainController(st);
manager.doAction(new baseAction(starter.ACTION_START));
}
public static void main(String args[]) {
test te = new test();
te.startMe();
}
}