gpt4 book ai didi

java - 复制源代码后 NetBeans 无法正确调试

转载 作者:行者123 更新时间:2023-11-30 07:38:16 25 4
gpt4 key购买 nike

不知道为什么会这样……好吧,情况是这样的:我的笔记本电脑上有一个 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();

}
}

最佳答案

在文件 nbproject/project.properties 中查找属性 javac.debug 并确保它是“true”。如果是,请在 nbproject 目录和任何本地 ant 设置中的其他位置查找该属性。

半相关说明:当我在 NetBeans 中创建项目时,即使源代码已经存在于其他地方,我总是创建一个新的“Java 应用程序”,并让它根据需要填充项目目录。然后我可以移入我的源代码并更新项目,NetBeans 会很高兴。


尝试设置 javac.debug 后编辑:

再次查看您的问题,我发现您能够test.java 上设置断点,但不能在 baseControllerManager 上设置断点。 java.这向我表明您是从某处的 JAR 中获取后一个类,而不是从您的项目目录中获取。

所以第一步是确保您没有定义CLASSPATH 环境变量。这绝不是一件好事,无论您是使用 IDE 还是手动构建。

下一步是查看您为 NetBeans 项目指定的库。您可以在 JAR 文件上使用 grep;文件目录为明文。查找不合格的类名应该就足够了。

最后一件事是通过在构建目录中查找它来验证您确实在编译该类。

关于java - 复制源代码后 NetBeans 无法正确调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2086437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com