Eclipsejava调试:找不到源代码

Eclipsejava调试:找不到源代码

在eclipse中调试java应用程序时,我收到一个“找不到来源“有两种情况出现错误:

  • 进入已导入的不同项目中的文件。
  • 逐步进入已安装的maven存储库中的文件

文件在那里,但Eclipse不会进入它们,而是显示一个按钮到“附着源"

我尝试了附加(这打开了一个对话框来定义变量?!)Eclipse确实跳到了文件中,但是调试器无法检查其中的任何变量。此外,手动为每个依赖项附加源代码也是不切实际的,因为在我的示例中有数千个依赖文件。

我是新手Eclipse\java所以解释一下为什么会发生这样的事情+如何解决这个问题会有很大的帮助!


月关宝盒
浏览 1411回答 3
3回答

莫回无

Eclipse调试与类一起工作。实际装载通过程序。您描述的症状听起来像是在这个项目中找不到这个类,而是在一个没有调试信息的分发JAR中找到的。以前你正在处理的项目。这可能有几个原因,但请查看显示这种行为的类的位置(查看导航窗格以识别它)。您很可能需要更改项目的构建路径,以避免使用此JAR,并让JVM使用该项目。编辑:注意,到2018年,通常使用像Maven这样的构建框架,其中构建路径是由M2E插件管理的,所以这个问题应该比被问到的时候少得多。如果使用Maven和M2E,请确保启用Preferences/Maven/“DownloadArtifaceSources”,或者右键单击项目Maven/“DownloadSources”。

一只萌萌小番薯

配置EclipseIDE只需3个步骤:注:更新源查找路径后,必须停止并重新启动调试会话。否则,缺少源的文件将继续显示“缺少源”。“编辑源查找”选择“编辑源查找”。命令[EditSourceLookup]打开Source PATH对话框,它允许您更改所选调试目标的源查找路径。重要 重启Eclipse在这最后一步之后。

慕雪6442864

当发现的类没有关联(或分配)源时,症状很好地描述了这种情况。可以将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源代码查看器显示的行与实际执行的行不同:有时它可以显示空间也被执行。这意味着源与类的运行时版本不匹配。即使您认为这是不可能的,也是可能的,所以请确保设置了正确的源。或者您的运行时与最新的更改相匹配,这取决于您要做什么。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java