在eclipse中调试java应用程序时,我在两种情况下收到“来源未找到”错误:
文件在那里,但eclipse不会进入它们,而是显示一个按钮“附加源”
我尝试了附加(这打开了一个对话框来定义一个变量?!),eclipse确实跳转到该文件,但调试器无法检查其中的任何变量。另外,手动为每个依赖项附加源代码也是不实际的,因为在我的案例中有数千个依赖项文件。
我是eclipse \ java的新手,所以解释为什么会发生这种情况+如何解决这个问题会有很大帮助!
显然,Eclipse不会自动知道依赖jar的源代码在哪里。不清楚为什么调试器不能检查变量一旦附加源。一种可能是来源不正确/不兼容。
假设你有一个maven项目,依赖项的来源已经下载并在本地存储库中可用,你可能想要安装m2eclipse, maven eclipse插件,看看这是否有助于解决你的问题。
Eclipse调试工作与类实际上加载由程序。
您描述的症状听起来像是在项目中没有找到有问题的类,但在没有调试信息的分发jar中找到了您正在使用的项目之前。
这种情况的发生有多种原因,但请查看显示这种行为的类所在的位置(在导航窗格中识别它)。您很可能需要更改项目的构建路径,以避免使用这个jar,而让JVM使用该项目。
编辑:请注意,截至2018年,通常使用像Maven这样的构建框架,其中的构建路径由m2e插件管理,因此这个问题应该比问这个问题时要少得多。如果您使用Maven和m2e,请确保启用Preferences / Maven / "Download Artifact Sources"或右键单击项目,Maven / "Download Sources"。
这些症状完美地描述了所找到的类没有关联(或分配)源的情况。
但是,如果Eclipse仍然建议您附加源代码,即使我正确地设置了类及其源:
这几乎总是意味着Eclipse从不同的位置找到类。检查您的源查找路径,看看它可能在哪里得到错误的类。根据您的发现更新路径。
当遇到断点时,Eclipse根本找不到任何东西:
当您的源查找路径不包含当前在运行时中加载的类时,就会发生这种情况。即使类在工作空间中,它也可能对启动配置不可见,因为Eclipse严格遵循源代码查找路径,并且只附加项目的依赖项,该项目目前正在调试。
一个例外是PDE中的调试包。在这种情况下,因为运行时由多个项目组成,不需要声明彼此之间的依赖关系,所以Eclipse将自动在工作空间中找到该类,即使它在源查找路径中不可用。
当我命中断点时,我看不到变量,或者它只是打开源代码,但不选择断点行:
这意味着在运行时,JVM或类本身没有必要的调试信息。每次编译类时,都可以附加调试信息。为了减少类的存储空间,有时会省略此信息,这使得调试此类代码非常痛苦。您唯一的机会是尝试在启用调试的情况下重新编译。
Eclipse源代码查看器显示的行与实际执行的行不同:
它有时可以显示空空间也被执行。这意味着您的源与类的运行时版本不匹配。即使您认为这是不可能的,但它是可能的,因此请确保您设置了正确的源。或者您的运行时与您的最新更改相匹配,这取决于您试图做什么。
我也有同样的问题。在我的例子中,我禁用了Window-Preferences-Java-Debug[在未捕获的异常上暂停执行]。然后,控制台显示了正确的错误:我的MySql用户没有访问数据库的权限。根据这个话题。
您可能拥有Eclipse可访问的依赖项源代码。但是Eclipse不知道动态加载的代码是源代码还是代码。例如,通过Maven。
对于Maven,我建议你使用run-jetty-run插件:
http://code.google.com/p/run-jetty-run/
https://github.com/ifedorenko/com.ifedorenko.m2e.sourcelookup
不幸的是,它没有帮助我,因为它有问题的Windows路径与空格。
我已经在Eclipse Bugzilla上填写了一个增强请求,如果你同意这个问题“源未找到”应该永远消失,请在这里投票:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=384065
谢谢!
莎莎
我遇到的问题是,我的Eclipse没有调试项目的源代码。我得到了一个空白页,上面写着“找到源代码节点”。
请单击“附加源代码”按钮。然后删除“默认”文件夹,然后单击添加,转到项目位置并附上。这对我很有效
删除现有的Debug配置并创建一个新的Debug配置。这样问题就解决了。
从http://www.coderanch.com/t/587493/vc/Debugging-Eclipse-Source
"在调试模式下运行时,右键单击正在运行的线程(在线程选项卡中)并选择编辑源查找。此时,您应该能够添加必要的项目/jar,其中包含您的源代码。”
我以这种方式添加了我当前的项目,它解决了我的问题
信息:这是一个可能的解决方案,当你使用maven (pom.xml)与两个项目。
发现问题:
如果你在eclipse或STS上,请安装并使用GC(GrepCode插件),有时你不需要将源.zip文件附加到你的项目路径中,这样GrepCode就可以正常工作。
在我的案例中,通过单击Remove All Breakpoints解决了问题
Remove All Breakpoints
要解决这个问题,重命名或删除类目录的顶部文件夹,Glassfish将重新创建整个类目录树,包括使用正确编译的版本更新类文件。
类目录位于:/workspace/glassfish3122eclipsedefaultdomain/eclipseApps/<你的Web应用程序>/ Web - inf /classes
配置Eclipse IDE只需3个步骤:
在更新Source Lookup路径之后,你必须停止并重新启动调试会话。否则,缺少源代码的文件将继续显示“缺少源代码”。
编辑源查找 选择编辑源查找…命令[编辑源查找]打开源路径对话框,允许您更改所选调试目标的源查找路径
在最后一步之后重要的 重新启动Eclipse。
我的eclipse maven项目也有类似的问题。我与这个问题斗争了很长一段时间,然后我试图重建项目
mvn clean eclipse:eclipse
这很有帮助。
注意:使用这种方法会混淆m2e插件,因为这两种方法非常不同。m2e在项目中添加一个名为“Maven Dependencies”的虚拟节点,并要求Maven在那里添加所有依赖项。
另一方面,mvn eclipse:eclipse将在文件.classpath中创建许多单独的条目。Eclipse将处理它们,就像您手动将jar添加到项目中一样。
mvn eclipse:eclipse
.classpath
除非您知道Eclipse中的类路径是如何工作的,否则不建议使用这种方法。
在我的例子中,其他引用项目的Maven版本与测试项目的版本不匹配。一旦它们相同,问题就消失了。
在调试模式下运行时,挂起线程后单击“编辑源查找”。此时,我们应该能够添加必要的project/jar,其中包含您的源代码。 在我以这种方式添加了我当前的项目之后,它解决了我的问题。由于< / p >
如果你想通过自动下载将源代码附加到任何JAR,请尝试使用这个Eclipse插件Java源攻击器
我在使用java代码对包含数据集的excel文件进行处理时遇到了这个问题,然后将其转换为.csv文件,我尝试了这篇文章的答案,但它们不起作用。 问题出在jar文件本身。在逐个下载所需的jar文件(旧版本)并将它们添加到我的项目后,“源未找到”错误消失了。 也许你可以检查一下你的jar文件。
这对我很有效
右键单击项目->属性->部署程序集->添加您的jar
如果您正在尝试调试maven java项目,而eclipse无法找到您的源代码,请尝试其中一种方法。
<build>**<sourceDirectory>src/main/java</sourceDirectory>**...
尝试maven->更新,然后调试
mvn eclipse:月食
现在试试调试
当我面对同样的问题时,我遵循了下面的步骤。
__abc0 => __abc1 => __abc2 => __abc3,
你在上面的屏幕上看到Jre1.8.0_12被选中。
Jre1.8.0_12
选择您正在使用的JRE并单击编辑。现在你应该会看到风箱屏幕。
点击目录,浏览Jdk,它应该看起来像下面的屏幕。 < / p >
点击ok,就完成了
转到eclipse中的调试配置,并使用以下目标来运行应用程序。
-Dmaven.surefire.debug
如
-Dmaven.surefire.debug exec: java
在我的例子中,即使在编辑源代码查找和添加项目之后,它也没有工作。我配置了项目的构建路径。
之后,我选择JRE系统库,它工作。
这是对我有用的方法。我在StackOverflow上尝试了所有可能的解决方案。我尝试在调试菜单中更改源代码位置,安装了m2e Eclipse插件,从嵌入式Maven更改,并安装了run-jetty-run,但没有任何效果。现在,我要警告,我不是试图查看一个外部的人的源代码,我只是想看到我自己的代码,但每次我“介入”我的方法,我写的是在我的项目,我得到了“source Now found”错误。
在最终询问专家后,我的问题是Eclipse所做的第一件事是调用ClassLoader,这可以从调试堆栈中看到。我所要做的是F6(跨过去),然后它带我回到我最初的呼叫,然后F5(跨过去)。这就是我的代码。叹息……这么简单的修补,却浪费了一个小时。
在我的案例中,在“Attach Source”中,我在“Source Attachment Configuration”面板中添加了另一个maven项目目录。从m2存储库中添加最新版本的jar不能正常工作。来自其他maven项目的所有类都未能打开。
这里的测试是我的另一个maven项目,包含了所有的java源代码。
对于初学者来说,
有可能jar文件是项目的一部分,您还没有将其包含在Eclipse工作空间中。
在日食光子尝试关闭 "窗口->首选项->Java->调试->使用高级源查找"
单击->编辑源查找路径
之后
最后单击->添加,选择Java项目并选择项目路径。
来源:https://www.youtube.com/watch?v=IGIKPY6q1Qw
我在eclipse 2019-03(4.11.0)中也遇到了同样的问题,我只能通过远程调试来解决这个问题,而不是直接在调试模式下启动它。
Attach source -> Add -> External Archive -> select jar -> open -> done
catch是寻找来源罐子和附加这个罐子。
例如,jar以“-sources”结尾。Stax2-api-3.4.1-sources
上面提到的答案对我都没用。
要解决这个问题,我必须遵循以下步骤:
谢谢。
有时这些事情的发生是因为版本,如果你使用的是最新的 在这种情况下,可能会出现版本,尝试使用旧版本,它将工作