Reputation: 107252
While debugging a java app in eclipse I receive a "Source not found" error in two cases:
The files are there, but eclipse won't step into them, instead it shows a button to "attach source"
I tried attaching (which opened a dialog to define a variable?!) and eclipse did jump to the file, but the debugger could not inspect any variables there. Also manually attaching the source for each dependency isn't practical, as in my case there are thousands of dependency files.
Why is this happening, and how can it be resolved?
Upvotes: 208
Views: 547072
Reputation: 2030
If you build a .war
-file for example all dependencies are part of the WEB-INF/lib
folder. But its only bytecode and eclipse need the sources. So call the maven-goal:
mvn org.apache.maven.plugins:maven-dependency-plugin:unpack-dependencies
-Dclassifier=sources
Then add the target/dependency
-folder to the Source-Lookup of your debugger.
Then eclipse is 100% able to resolve every code of your archive you debug.
Upvotes: 0
Reputation: 686
Click -> Edit Source Lookup Path
after then
Click -> Add finally select Java project and select project path.
Upvotes: 5
Reputation: 37
In my case I put many breakpoints in different project, and when I run debugger, he can not find need source folder! I got the error "Source not found"
To fix it I removed all the breakpoints by going to Windows -> Show View -> Breakpoints -> right click -> remove all.
Then I could add breakpoints as needed
Upvotes: 0
Reputation: 1702
None of the posted solutions worked for me. I was using eclipse to debug a servlet using a Tomcat server. My version of eclipse is 2022-12. The problem was with debugging libraries that I included in my WEB-INF/lib directory. This had been working for me in previous versions of eclipse. I can't recall if it ever worked using eclipse 2022-12. If it had, it certainly stopped working. As I said, none of the posted solutions worked for me, but I will add that I never did try rebuilding the workspace which was one solution that I had read.
Somehow in trying to update eclipse, I ended up breaking eclipse. After an update, it wouldn't start. Eclipse updates are strange and hard to understand. It goes, though a laborious process of trying alternative solutions. I think it's trying to figure out a compatible set of components to install based on the features and plugins that you have installed. That's what probably makes the update process somewhat unreliable. Anyhow, this issue forced me to reinstall eclipse. After the reinstall of eclipse, this problem went away. My guess is that something related to an eclipse update or possibly adding some marketplace plugin had broken this feature from working.
Upvotes: 0
Reputation: 21
sometimes these thing happens because of the version also like if you are using latest version in that case it may arise try to use older version it will work.
Upvotes: 0
Reputation: 3137
None of the mentioned answer worked for me.
To resolve this issue i have to follow bellow steps:
Thanks.
Upvotes: 8
Reputation: 89
Attach source -> Add -> External Archive -> select the jar -> open -> done
the catch is look for the sources jar and attach this jar.
for example the jar ends with "-sources" Stax2-api-3.4.1-sources
Upvotes: 0
Reputation: 708
I had the same issue with eclipse 2019-03 (4.11.0) and I was only able to solve this by doing the debugging via remote debugging instead of directly launching it in debug mode.
Upvotes: 0
Reputation: 2276
I had similar problem with my eclipse maven project. I fought with this issue quite a long time then I tried to rebuild project with
mvn clean eclipse:eclipse
and it helped.
Note: Using this approach will confuse the m2e plugin since the two approaches are very different. m2e adds a virtual node to your project called "Maven Dependencies" and asks Maven to add all dependencies there.
mvn eclipse:eclipse
, on the other hand, will create a lot of individual entries in the file .classpath
. Eclipse will handle them as if you manually added JARs to your project.
Unless you know how the classpath in Eclipse works, this approach is not recommended.
Upvotes: 10
Reputation: 75426
Eclipse debugging works with the class actually loaded by the program.
The symptoms you describe sounds like the class in question was not found in the project, but in a distribution jar without debug info found before the project you are working with.
This can happen for several reasons but have a look at the location where the classes showing this behaviour is found (look in the navigation pane to identify it). You will most likely need to change the build path of the project to avoid using this jar and have the JVM use the project instead.
EDIT: Note that as of 2018 it is common to use a build framework like Maven, where the build path is managed by the m2e plugin so this problem should be very less frequent than when the question was asked. If you use Maven and m2e, make sure to enable Preferences / Maven / "Download Artifact Sources" or right-click the project, Maven / "Download Sources".
Upvotes: 64
Reputation: 417
In eclipse photon try to turn off "Window->Preferences->Java->Debug->Use advanced source lookup"
Edit: There is a related bug in this version of eclipse which leads to a "source not found" message while debugging Java applications. See bug report bugs.eclipse.org/bugs/show_bug.cgi?id=537699 for more details
Upvotes: 0
Reputation: 21
For beginners,
There is a possibility that the jar file is a part of the project which you have not yet included in the Eclipse workspace.
For that, you need to know the project name of the jar file. Say for example, its abc-18.0.0-SNAPSHOT.jar, it means that the project you are supposed to include in your workspace is abc.
Upvotes: 0
Reputation: 17365
In my case in "Attach Source", I added the other maven project directory in the "Source Attachment Configuration" panel. Adding the latest version jar from the m2 repository din't work. All the classes from the other maven project failed to open.
Here test was my other maven project containing all the java sources.
Upvotes: 1
Reputation: 1092
Well, here's what worked for me. I tried every possible solution on StackOverflow that there was. I tried changing my source location in the debug menu, I installed the m2e Eclipse plugin, I changed from embedded Maven, and I installed the run-jetty-run and nothing worked. Now, I will caveat that I was not trying to view an external person's source code, I just wanted to see my OWN code, but every time I "stepped in" to my methods that I wrote that were in MY project, I got the "Source now found" error.
After finally asking an expert, my issue was that the first thing Eclipse was doing was calling a ClassLoader, which you can see from the debug stack. All I had to do was F6 (step over) and then it took me back to my original call and then F5 (step in). And there was my code. Sigh...such a simple fix but an hour wasted.
Upvotes: 0
Reputation: 3759
In my case, even after Editing source lookup and Adding project, it didn't worked. I configured the Build path of the project.
After that, I selected JRE System Library and it worked.
Upvotes: 3
Reputation: 4397
Just 3 steps to configuration Eclipse IDE:
Note: After updating the Source Lookup paths, you'll have to stop and restart your debug session. Otherwise, the file with the missing source will continue to show "missing source".
Edit Source Lookup Select the Edit Source Lookup... command [ Edit Source Lookup ] to open the Source Path Dialog, which allows you to make changes to the source lookup path of the selected debug target.
IMPORTANT Restart Eclipse after this last step.
Upvotes: 341
Reputation: 2588
Go to Debug configuration in eclipse and use below goal to run your application.
-Dmaven.surefire.debug
e.g
-Dmaven.surefire.debug exec:java
Upvotes: 0
Reputation: 4452
I was facing the same issue,I followed the bellow steps.
Window => Preferences => Java => Installed JREs,
You see in the above screen Jre1.8.0_12
is selected.
select the JRE you are using and click Edit. Now You should see the bellow screen.
Click on the directory, browse for Jdk, It should look like bellow screen.
click ok, and its done
Upvotes: 8
Reputation: 1511
If your are trying to debug your maven java project, and eclipse is not able to find your source, try one of these.
<build>**<sourceDirectory>src/main/java</sourceDirectory>**...
Try maven->update and then debug
mvn eclipse:eclipse
now try debugging
Upvotes: -1
Reputation: 167
this worked for me
right click on project -> Properties -> Deployment Assembly -> add your jar
Upvotes: 0
Reputation: 49
I had this problem while working on java code to do process on a excel file containing a data set, then convert it to .csv file, i tried answers to this post, but they did not work. the problem was the jar files themselves. after downloading needed jar files one by one(older releases) and add them to my project, "source not found" error vanished. maybe you can check your jar files. hope this would help.
Upvotes: 0
Reputation: 2852
If you want to attach source code to any JAR by auto-downloading, try using this Eclipse plugin Java Source Attacher
Upvotes: 0
Reputation: 1
When running in debug mode, click Edit Source Lookup after suspended from thread. At this point, we should be able to add the necessary project/jar which contains your source code. After I added my current project in this way, and it solved my problem. Thanks
Upvotes: 0
Reputation: 465
In my case the Maven version of the other referenced project didn't match the version of the test project. Once they were the same, the problem disappeared.
Upvotes: 0
Reputation: 2567
In my case with tomcat projects I have checked project here: Window - Preferences - Tomcat - Source Path - Add java projects to source path
Upvotes: 0
Reputation: 46
I've had a related issue in connection with Glassfish server debugging in Eclipse. This was brought about by loading the source code from a different repository (changing from SVN to GitHub). In the process, the wrong compiled classes were used by the Glassfish server and hence, the source and run time would be out of sync with break points appearing on empty lines.
To solve this, rename or delete the top folder of the classes directory and Glassfish will recreate the whole class directory tree including updating the class files with the correctly compiled version.
The classes directory is located in: /workspace/glassfish3122eclipsedefaultdomain/eclipseApps/< your Web Application>/WEB-INF/classes
Upvotes: 0
Reputation: 7
In my case problem was resolved by clicking Remove All Breakpoints
Upvotes: -5
Reputation: 7723
If you are on eclipse or STS please install and Use GC(GrepCode Plugin) ,some time you don't need to attach the source .zip file into your project path so GrepCode works fine for you.
Upvotes: 0
Reputation: 1761
Info: This is a possible solution, when you use maven (pom.xml) with couple of projects.
If you are working with maven, make sure what version you are taking inside the according pom.xml (e. g. 1.0.1-SNAPSHOT ). It might be possible that your code is up-to-date, but your pom.xml dependencies are still taking the old JAR's/Snapshots (with the old code).
Finding the problem:
Upvotes: 0
Reputation: 919
From http://www.coderanch.com/t/587493/vc/Debugging-Eclipse-Source
"When running in debug mode, right click on the running thread (in threads tab) and select Edit Source Lookup. At this point, you should be able to add the necessary project/jar which contains your source code."
I added my current project in this way, and it solved my problem
Upvotes: 11