When I try to use
ctrl+space this error is shown:
This compilation unit is not on the build path of a Java project.
I see that there are similar topics but my work environment is Eclipse and i pull my project from Git (I import project as general project) and i use Apache Ant. Can anyone help me?
Since you imported the project as a General Project, it does not have the java nature and that is the problem.
Add the below lines in the .project file of your workspace and refresh.
<natures> <nature>org.eclipse.jdt.core.javanature</nature> </natures>
Another alternative to Loganathan Mohanraj’s solution (which effectively does the same, but from the GUI):
- Right-Click on your project
- Go to “Properties”
- Choose “Project Natures”
- Click on “Add”
- Choose “Java”
- Click “Apply and Close”
If it is a Maven project then sometimes re-importing of it helps:
- Right-click the project in the Project Explorer and choose Delete.
- File > Import… > Maven > Existing Maven Projects > Next > Root Directory > Browse your project from Disk.
Hope it will resolve the issue.
Go to Project-> right Click-> Select Properties -> project Facets -> modify the java version for your JDK version you are using.
If your project is imported as an existing maven project then –> Just right click on project and do maven update. It resolved my similar issue.
For those who still have problems after attempting the suggestions above:
I solved the issue by updating the maven project.
Add this to .project file
<?xml version="1.0" encoding="UTF-8"?> <projectDescription> <name>framework</name> <comment></comment> <projects> </projects> <buildSpec> <buildCommand> <name>org.eclipse.wst.common.project.facet.core.builder</name> <arguments> </arguments> </buildCommand> <buildCommand> <name>org.eclipse.jdt.core.javabuilder</name> <arguments> </arguments> </buildCommand> <buildCommand> <name>org.eclipse.m2e.core.maven2Builder</name> <arguments> </arguments> </buildCommand> <buildCommand> <name>org.eclipse.wst.validation.validationbuilder</name> <arguments> </arguments> </buildCommand> </buildSpec> <natures> <nature>org.eclipse.jem.workbench.JavaEMFNature</nature> <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature> <nature>org.eclipse.jdt.core.javanature</nature> <nature>org.eclipse.m2e.core.maven2Nature</nature> <nature>org.eclipse.wst.common.project.facet.core.nature</nature> </natures> </projectDescription>
Thought I’d add this one as a potential cause. In my case, I encountered this issue when performing a File search. When I opened the found file(s), I encountered this issue.
In my case, I have a nested Maven module in a POM project and when I opened the file it opened not the file in the module, but the file from the parent POM project. Simply reopening that file from the module project resolved the issue.
If you open any existing java file in Ctrl+Shift+R and try to write a code in that file, it will show that error message.
Please open the existing java file in Ctrl+Shift+T and write the code in that file, you will not get that error message.
Leave an answer