【问题标题】:Eclipse Java Debugger Source Lookup PathEclipse Java 调试器源查找路径
【发布时间】:2019-07-17 18:58:06
【问题描述】:

我的工作区中有两个 Java eclipse 项目。项目ProjectA 在包packageA 内具有类ClassA,同样,项目ProjectB 在包packageB 内具有类ClassB

我有这个简单的代码:

// ClassA.java
package packageA;

import packageB.ClassB;

public class ClassA {

    public static void main(String[] args) {
        ClassB b = new ClassB();
        String str = b.getStr();
        System.out.println(str);
    }

}


// ClassB.java
package packageB;

public class ClassB {
    private String str;

    public ClassB() {
        str = "Hello, World!";
    }

    public String getStr() {
        return str;
    }
}

问题:我正在尝试debug main in ClassA。当我进入ClassB 构造函数时,我使用“编辑源查找路径...”按钮收到错误“找不到源”。我尝试通过将ProjectB 添加到ProjectA 的调试配置的“源”选项卡来解决此问题,但仍然遇到相同的错误。

问题:如何解决这个问题?

【问题讨论】:

  • 项目之间的依赖是通过什么方式建立起来的?
  • ProjectA 依赖于 ProjectB,但反之则不然。 ProjectA -> Properties -> Java Build Path:“Projects”选项卡有 ProjectB,“Order and Export”选项卡也有 ProjectB(未选中)。
  • 看起来您在项目 A 的构建路径中仍然有一个 ClassB.class。使用此类而不是项目 B 中的类,因此找不到源。查看构建路径并在文件系统级别(Eclipse 外部)检查该文件的项目 A 目录。

标签: java eclipse debugging workspace buildpath


【解决方案1】:

我解决了这个问题如下:当我遇到“找不到源”页面时,我使用调试器退出了几次,直到我回到我在代码中的位置。然后,我再次踏入,这次成功了。

参考请见this answer

【讨论】:

    【解决方案2】:

    他们需要在同一个包中,或者尝试使用 maven 项目并通过 pom.xml 包含你想要的包

    【讨论】:

    • 我需要 ClassAClassB 位于不同的包中,而这些包又位于不同的项目中。除了将这些项目转换为 maven 项目之外,还有其他选择吗?
    • 你试过 public ClassA extends ClassB 吗?
    • 没有。我问的是如何正确设置项目,而不是如何更改代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多