Eclipse的Javadebugging:找不到源代码

在eclipse中debuggingjava应用程序时,在两种情况下收到“ 未find源 ”错误:

  • join到已导入的其他项目中的文件
  • join已安装的Maven仓库中的文件

文件在那里,但日食不会进入他们,而是显示一个button“ 附加源

我尝试附加(打开一个对话框来定义一个variables?!)和eclipse确实跳转到文件,但debugging器无法检查任何variables。 另外手动附加每个依赖的源是不实际的,因为在我的情况下,有成千上万的依赖文件。

我是新的eclipse \ java所以解释为什么发生这种情况+如何解决这将帮助很多!

Eclipsedebugging与程序实际加载的类一起工作。

你描述的症状听起来像是在项目中没有find有问题的类,但是在你正在使用的项目之前没有finddebugging信息的分发jar。

这可能是由于几个原因而发生的,但是要查看显示此行为的类的位置(请在导航窗格中查找)。 您很可能需要更改项目的构buildpath以避免使用此jar,并让JVM使用该项目。

只需3个步骤来configurationEclipse IDE:

注意:更新源查找path后,您必须停止并重新启动debugging会话。 否则,缺less源文件将继续显示“缺less源”。

编辑源查找select编辑源查找命令[编辑源查找]来打开源path对话框,它允许您更改所选debugging目标的源查找path。

在这里输入图像描述

在这里输入图像描述

在这里输入图像描述

重要信息在最后一步之后重新启动Eclipse

症状完美地描述了find的类没有关联(或分配)源的情况。

  • 您可以在“首选项”>“Java”>“已安装的JRE”中关联JDK类的源代码。 如果JRE(不是JDK)被检测为要使用的默认JRE,那么您的JDK类将不具有附加的源。 请注意,并非所有JDK类都提供了源代码,其中一些仅以二进制forms分发。
  • 从项目构buildpath中手动添加的类需要手动附加关联的源。 源可以驻留在zip或jar文件,工作区或文件系统中。 Eclipse将扫描zip,因此您的源不必位于存档文件的根目录中。
  • 来自其他插件(maven,PDE等)的依赖关系。 在这种情况下,由插件如何提供源代码。
    • PDE将要求每个插件都有对应的包含插件来源的XXX.source包。 更多信息可以在这里和这里find。
    • 如果可用, m2eclipse可以为Maven依赖关系提取源代码和javadoc。 此function应该启用m2eclipse偏好(该选项被命名为“ 下载源和javadocs ”。
    • 对于其他插件,您需要查阅他们的文档
  • 从项目加载的类将自动与项目中的源相匹配。

但是,如果Eclipse仍然build议你附上源代码,即使我正确设置了我的类和它们的源代码:

这几乎总是意味着Eclipse正在从不同的地方find你想要的课程。 检查你的源查找path,看看它可能得到错误的类。 根据您的发现更新path。

当发现断点时,Eclipse根本找不到任何东西:

发生这种情况时,您的源查找path不包含当前在运行时加载的类。 即使该类在工作区中,对于启动configuration也是不可见的,因为Eclipse严格遵循源查找path,仅附加当前正在debugging的项目的依赖关系。

PDE中的debugging软件包是一个例外。 在这种情况下,因为运行时是由多个项目组成的,所以不必声明彼此之间的依赖关系,即使在源查找path中不可用,Eclipse也会自动在工作区中查找该类。

当我点击一个断点时,我看不到variables,或者只是打开源代码,但不select断点行:

这意味着在运行时,JVM或类本身没有必要的debugging信息。 每次编译类时,都可以附加debugging信息。 为了减less类的存储空间,有时这些信息被省略,这使得debugging这样的代码变得很困难。 您唯一的机会是尝试使用debuggingfunction重新编译。

Eclipse源代码查看器显示与实际执行的行不同的行:

它有时可以显示空的空间也被执行。 这意味着你的源代码不符合你的运行时版本的类。 即使你认为这是不可能的,所以确保你设置正确的来源。 或者你的运行时间匹配你的最新变化,这取决于你想要做什么。

http://www.coderanch.com/t/587493/vc/Debugging-Eclipse-Source

“在debugging模式下运行时,右键单击正在运行的线程(在”线程“选项卡中),然后select”编辑源查找“。此时,您应该能够添加必要的包含您的源代码的项目/ jar。

我以这种方式添加了当前的项目,并解决了我的问题

我和我的eclipse maven项目有类似的问题。 我与这个问题打了很长时间,然后我试图重buildprojet

mvn clean eclipse:eclipse 

这有帮助。

删除现有的debuggingconfiguration并创build一个新的。 这应该可以解决问题。

显然,Eclipse不会自动知道从属jar的源代码在哪里。 目前还不清楚为什么debugging器在源文件附加后无法检测variables。 一种可能性是不正确/不兼容的来源。

假设你有一个Maven项目,并且依赖关系的源代码已经下载并在本地仓库中可用,你可能需要安装m2eclipse ,maven eclipse插件,看看是否有助于解决你的问题。

我有问题,我的Eclipse没有debugging我的项目的源代码。 我得到一个“find源代码节点”的空白页面。

请点击附加源代码button。 然后删除“默认”文件夹,然后点击添加,并转到您的项目位置,并附上。 这对我有效

我面临着同样的问题,我跟着下面的步骤。

Window => Preferences => Java => 已安装的JRE

在这里输入图像描述

你在上面的屏幕上看到Jre1.8.0_12被选中。

select您正在使用的JRE,然后单击编辑 。 现在你应该看到波纹pipe屏幕。

在这里输入图像描述

点击目录,浏览Jdk,它应该看起来像下面的屏幕。 在这里输入图像描述

点击确定,完成

您可能拥有Eclipse可访问的源代码。 但是Eclipse不知道dynamic加载的代码的源代码。 例如通过Maven。

在Maven的情况下,我build议您使用run-jetty-run插件:

http://code.google.com/p/run-jetty-run/

作为解决方法,您也可以使用debugging器连接到正在运行的JVM,您将看到代码。 或者,您可以从这里使用Eclipse的Dynamic Source Lookup插件:

https://github.com/ifedorenko/com.ifedorenko.m2e.sourcelookup

不幸的是,它没有帮助我,因为它与空间的Windowspath有问题。

我已经在Eclipse Bugzilla中填充了一个增强请求,如果你同意这个问题,“Source not found”应该永远消失,请在这里投票:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=384065

谢谢!

莎莎

我有同样的问题。 在我的情况下,我已经禁用Window-Preferences-Java-Debug [暂停对未捕获的exception的执行]。 然后,控制台向我显示了正确的错误:我的MySql用户没有权限访问数据库。 根据这个话题。

信息:当你在几个项目中使用maven(pom.xml)时,这是一个可能的解决scheme。

如果您正在使用maven,请确保在相应的pom.xml(例如1.0.1-SNAPSHOT)中正在使用哪个版本。 你的代码有可能是最新的,但是你的pom.xml依赖关系还在使用旧的JAR的/快照(使用旧的代码)。

发现问题:

  • 尝试debugging相应的文件。
  • 因此,在相关的代码区设置一个断点。
  • 出现“source not found”时 ,请确保在正确的项目(可find.java文件的位置)中进行绑定。
  • 编译.class文件在IDE编辑器中打开。
  • 点击“带编辑器的链接”find相应的JAR /快照。
  • 现在确保这个JAR是最近的一个。 可能有一个更新的。 在这种情况下,请在pom.xml中写入最新的版本号。
  • 然后做一个maven更新和build立(例如“mvn干净安装-U”)在正确的项目目录。

如果你在eclipse或STS上,请安装并使用GC(GrepCode插件),有时候你不需要将source .zip文件附加到你的项目path中,这样GrepCode就能正常工作。

我在Eclipse中有一个与Glassfish服务器debugging相关的问题。 这是通过从不同的存储库加载源代码(从SVN更改为GitHub)来实现的。 在这个过程中,Glassfish服务器使用了错误的编译类,因此,源代码和运行时间将与空行上出现的断点不同步。

为了解决这个问题,重命名或删除classes目录的顶层文件夹,Glassfish将重新创build整个类目录树,包括用正确编译的版本更新类文件。

classes目录位于:/ workspace / glassfish3122eclipsedefaultdomain / eclipseApps / <您的Web应用程序> / WEB-INF / classes

在我的情况下与tomcat项目我已经检查项目在这里:窗口 – 首选项 – Tomcat的 – 源path – 添加Java项目源path

在我的情况下,其他引用项目的Maven版本与testing项目的版本不匹配。 一旦他们一样,问题就消失了。

在debugging模式下运行时,从线程挂起后单击“编辑源查找”。 在这一点上,我们应该能够添加必要的项目/ jar包含您的源代码。 我以这种方式添加了当前的项目后,解决了我的问题。 谢谢

如果要通过自动下载将源代码附加到任何JAR,请尝试使用此Eclipse插件Java Source Attacher

在这里输入图像描述

在处理包含数据集的excel文件的过程中,我有这个问题,然后将其转换为.csv文件,我试着回答这个post,但他们没有工作。 问题是jar文件本身。 在下载需要的jar文件之后(旧版本)并将它们添加到我的项目中,“找不到源”错误消失。 也许你可以检查你的jar文件。 希望这会有所帮助。

这对我工作

右键点击project – > Properties – > Deployment Assembly – >添加你的jar

转到eclipse中的Debugconfiguration,使用下面的目标来运行你的应用程序。

-Dmaven.surefire.debug

例如

-Dmaven.surefire.debug exec:java

按照下面的步骤,
点击编辑源查找 – >selectJava项目 – >添加选定的项目

参考如何在Eclipse中debugging期间解决“找不到源”错误。

如果你正试图debugging你的maven java项目,并且eclipse无法find你的源代码,请尝试其中的一个。

  1. 尝试在pom.xml中添加这些行
 <build>**<sourceDirectory>src/main/java</sourceDirectory>**... 

尝试maven->更新,然后debugging

  1. 转到项目的根目录;

mvn eclipse:eclipse

现在尝试debugging

在我的情况下,通过单击“ Remove All Breakpoints解决了问题