3 回答
TA贡献1865条经验 获得超7个赞
TA贡献1795条经验 获得超7个赞
注:
更新源查找路径后,必须停止并重新启动调试会话。否则,缺少源的文件将继续显示“缺少源”。
重要 重启Eclipse
TA贡献1812条经验 获得超5个赞
当发现的类没有关联(或分配)源时,症状很好地描述了这种情况。
- 可以将JDK类的源关联到
首选项>Java>已安装的JRE
..如果将JRE(不是JDK)检测为要使用的默认JRE,那么JDK类将没有附加的源。请注意,并非所有JDK类都提供了源代码,其中有些仅以二进制形式分发。 - 项目的生成路径中的类,手动添加要求手动附加关联的源。源可以驻留在zip或JAR文件、工作区或文件系统中。Eclipse将扫描zip,因此您的源代码不必位于归档文件的根目录中。
- 类,来自另一个插件(maven、PDE等)的依赖项。在这种情况下,如何提供源代码取决于插件。
PDE
将要求每个插件都有相应的XXX.源
m2月食
可以为Maven依赖项获取源和javadocs(如果可用的话)。应启用此功能。m2月食
首选项(该选项被命名为“下载源代码和javadocs".
- 对于其他插件,您需要查阅它们的文档
- 从项目加载的类将自动与来自项目的源匹配。
但是,如果Eclipse仍然建议您附加源代码,即使我正确地设置了类和它们的源代码,那该怎么办呢?
这几乎总是意味着Eclipse是从不同的地方找到类的。检查您的源查找路径,看看它可能在哪里得到错误的类。根据您的发现更新路径。
当命中断点时,Eclipse什么也找不到:
发生这种情况时,当您是源查找路径时,不包含当前加载在运行时中的类。即使类在工作区中,它对于启动配置也是不可见的,因为Eclipse严格遵循源查找路径,并且只附加项目的依赖项,该依赖项目前正在调试。
中的调试包是一个例外。PDE..在这种情况下,因为运行时是由多个项目组成的,它们之间不需要声明依赖项,Eclipse将自动在工作区中找到类,即使它在源查找路径中不可用。
当我到达断点或它只是打开源时,我看不到变量,但没有选择断点行:
这意味着在运行时,JVM或类本身都没有必要的调试信息。每次编译类时,都可以附加调试信息。为了减少类的存储空间,有时会忽略这些信息,这使得调试此类代码非常困难。您唯一的机会是尝试并在启用调试的情况下重新编译。
Eclipse源代码查看器显示的行与实际执行的行不同:
有时它可以显示空间也被执行。这意味着源与类的运行时版本不匹配。即使您认为这是不可能的,也是可能的,所以请确保设置了正确的源。或者您的运行时与最新的更改相匹配,这取决于您要做什么。
添加回答
举报