不知道为什么会发生这种情况......好吧,情况就是这样:我的笔记本电脑上有一个 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 行),因为我跳入了一个非静态方法(即覆盖),它随之而来......我试图:
- 清理和构建 = 没有效果
- 手动删除 build 和 dist = 无效
你有什么建议?
为了完整起见,我附上了主类的来源:
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();
}
}