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你的源代码,请尝试其中的一个。
- 尝试在pom.xml中添加这些行
<build>**<sourceDirectory>src/main/java</sourceDirectory>**...
尝试maven->更新,然后debugging
- 转到项目的根目录;
mvn eclipse:eclipse
现在尝试debugging
在我的情况下,通过单击“ Remove All Breakpoints
解决了问题