188

I make this call to a static singleton instance from the class GameManager.java.

HUD.getInstance().update(timeDelta); 

HUD.java contains the HUD class as well as two other related classes, HUDTextElement and HUDElement. All the classes are in the same root path ../src/org/mypackage.

However, when compiling this project in IntelliJ I get cannot find Symbol HUD on the line I make the HUD.getInstance() call.

This exact same code compiles just fine in Eclipse, any idea what the problem is?

2
  • 2
    Do you have the HUD class imported in both? Commented Aug 26, 2012 at 16:53
  • 1
    this is the only solution for this problem which worked for me stackoverflow.com/a/56473166/8660553 Commented Jul 9, 2019 at 4:28

38 Answers 38

338

Select Build->Rebuild Project will solve it

Sign up to request clarification or add additional context in comments.

12 Comments

Note for complete noobs to Java/IntelliJ: above is different from "Build Project"
@JustinHill - I am well versed with eclipse and new to IntelliJ. Can you help me with respects to what's the difference between the two and any points/links that help me settle my time with IntellJ.
I'm probably a worse resource than a google search, I haven't used Eclipse. My comment is just that "Rebuild Project" and "Build Project" are different options (I was helping someone who came across this and they didn't notice the difference between the options)
Why did this work? Invalidating caches and restarting didn't even work.
It didn't work for me. I tried also other things suggested. I noticed under Settings -> Build,Execution, Deployment -> Compiler -> Java Compiler that the bytecode version was set to 19 while I was using java 21. Didn't really get what was happening. During the build it was logged that the Javac 21 compiler was in using. Anyway setting the version to 21 fixed.
|
95

I had the same problem and fixed it by clicking File>Invalidate caches/ restart

3 Comments

Invalidating caches does not result in lost changes. I'm not even sure how that would work. If you save a file, it's saved, regardless of IntelliJ caching or committing to a repository.
One of the latest answers here did it for a rather old question.
OMG, I have Tomcat and a bunch of Spring Boot apps running, I don't want to restart :( All I need is to re-compile one single class which was recently successfully compiled and deployed and all I changed is a boolean condition... Why, Intellij, why ?!
61

I had the same problem, and turns out I had never completely compiled the fresh project. So right-clicking and selecting Compile'' (shift-cmd-F9 on mac) fixed it. It seems the compile on save does not 'see' non-compiled files.

Marking the src folder as source did not help in my case.

Comments

39

I was getting the same "cannot find symbol" error when I did Build -> Make Project. I fixed this by deleting my Maven /target folder, right clicking my project module and doing Maven -> Reimport, and doing Build -> Rebuild Project. This was on IntelliJ Idea 13.1.5.

It turns out the Maven -> Reimport was key, since the problem resurfaced a few times before I finally did that.

2 Comments

Similarly you can also delete your offending module (a gradle one in my case) and then reimport with File -> New -> Module from existing sources which is what I had to do. Though I also had to modify the .idea file manually for reimport to finally work: stackoverflow.com/questions/18881062/…
2024 version: right click on project root > Maven > Reload project
37

This is likely to be your ../src folder is not marked as a "source" folder in Intellij IDEA, so it doesn't know to look there to find your class. You can right click the folder in the project explorer and choose "mark as source folder" to fix this.

6 Comments

1 is a possiblity, but wouldn't 2 not give him an error saying it couldn't find HUD, but rather an error saying it doesn't have getInstance/update method?
this option seems to be gone.
No, it transform to popup options: "Mark Directory As >"
My src contain test folder inside, and multi modules, after mark it as Source Root my issue is worst.
For me this was close to the right answer. My source root was already marked, but I had to "Unmark as Sources Root" and then mark it as the Sources root again in order to fix the error.
|
21

I faced the same problem, and there are a lot of solutions given in the answer, trying all these solutions took me quite some time, so here I would like to propose a methodical approach if you get this error.

Check for the following things, create/update if something is missing

  1. src folder is marked as the source folder
  2. .imls files are present
  3. Annotation processing is enabled
  4. If you recently used @UtilityClass then it can also be the reason, Bug Link

If everything is fine, you can try following solutions in given order

  1. Recompile the file/module

  2. If that didn't fix the issue, try refreshing maven dependency and building the project using Maven -> Reimport and Build -> Rebuild Project

  3. Try mvn clean install -DskipTests

  4. Try invalidating the IntelliJ cache and restarting the IDE, using File > Invalidate caches/ restart

  5. Delete the .idea folder and reimport the project

Credit and Thanks to everyone who answered this question, you can refer to their answers for more description regarding each point.

1 Comment

works : Try invalidating the IntelliJ cache and restarting the IDE, using File > Invalidate caches/ restart
20

For me - I tried these steps(Invalidate Cache & Restart, Maven Reimport)) but they didn't work. So I deleted the .idea, .settings, and .project folder and tried - it worked.

3 Comments

Deleting the .idea folder did it for me.
This worked as I had a couple of libraries on a second drive and windows update (oh the gift that keeps giving) created a boot partition that changed the drive letter. Even removing the old links and re adding them under project settings libraries didn't work until I deleted the .idea folder. Then option to recompile modules appears under the build menu.
I deleted .idea, .build, .gradle and this solved the issue for me
18

I solved this problem doing right click on Java Folder and Rebuild

IntelliJ screenshot

Comments

13

Thanks for the help so far, turns out the fix was to compile HUD.java first (right click on the file-> Compile HUD.java). After compiling the java file the rest of the project could be compiled without any problems.

I don't really know why this fixed it, or why IntelliJ wouldn't do this automatically, but root error seems it has to do with IntelliJ not correctly handling having multiple classes in a single .java file.

2 Comments

IntelliJ can handle multiple classes in a single file just fine, it just needs to be sure that the file was compiled at some point.
Yeah, except that I just had the same issue with a single class file. Oddly enough, it had been running just fine right before I ran this maven command: mvn com.zenjava:javafx-maven-plugin:2.0:fix-classpath. It's meant to move the javafx jar from the libs directory to the ext directory for the current JDK. I found it here.
11

This happened to me when I deleted a folder and then copy-pasted it back to the project.

Right-click project folder -> Rebuild worked for me.

Comments

7

I had to right-click the project, and select "Reimport" under the "Run Maven" submenu.

Comments

6

I use maven in my project. For some reason IntelliJ was giving me these kind of wierd errors. I ran mvn clean and tried a resync and these errors disappeared.

1 Comment

clean is a maven lifecycle. You use it if you want to clean up all the output files that have been created by the maven project.
4

recompiling the main Application.java class did it for me, right click on class > Recompile

Comments

3

If you are using Lombok, make sure you have enabled annotation processing.

Comments

3

For me was a problem with Lombok, because it requires Annotation Processing to be enabled. You can find this checkbox on Settings > Build > Compiler > Annotation Processors

1 Comment

Thank you! This fixed it for me.
2

I know this is an old question, but as per my recent experience, this happens because the build resources are either deleted or Idea cannot recognize them as the source.

Wherever the error appears, provide sources for the folder/directory and this error must be resolved.

Sometimes even when we assign sources for the whole folder, individual classes might still be unavailable. For novice users simple solution is to import a fresh copy and build the application again to be good to go.

It is advisable to do a clean install after this.

Comments

2

I know this thread is old but, another solution was to run

$ mvn clean install -Dmaven.test.skip=true 

And on IntelliJ do CMD + Shift + A (mac os) -> type "Reimport all Maven projects".

If that doesn't work, try forcing maven dependencies to be re-downloaded

$ mvn clean -U install -Dmaven.test.skip=true 

1 Comment

In my case there were autogenerated classes (based on XML files) that other parts of the code referenced. While building with maven works, if not mvn installed, IntelliJ did not see those references and failed the run-environment.
2

For me, the error was coming from @RequiredArgsConstructor(onConstructor = @__(@Inject)), and the message was cannot find symbol __. The error message right above this was "java: You aren't using a compiler supported by lombok, so lombok will not work and has been disabled".

Adding argument below in VM options worked as suggested here worked for me.

-Djps.track.ap.dependencies=false 

Comments

2

Make sure the "Target bytecode version" in the Java Compiler settings is set to a java version that contains the feature you're trying to use. This value is normally set to "Same as language level" but can be overridden for individual modules. When that happens the code editor will show warnings based on the other language settings but the compiler will generate bytecode for the specified java version. If those language settings don't match it can be difficult to diagnose the problem.

Comments

2

I had this problem and it was resolved by adding the following highlighted block into the pom.xml file.

 <properties> <maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target> </properties> <build> <plugins> <!-- Compiler plugin for specifying Java version --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>17</source> <target>17</target> </configuration> </plugin> </plugins> </build> 

enter image description here

Remember to update maven afterwards

enter image description here

Comments

1

For my case, the issue was with using Lombok's experimental feature @UtilityClass in my java project in Intellij Idea, to annotate a class methods as "static". When I explicitly made each method of the class as "static" instead of using the annotation, all the compilation issues disappeared.

Comments

1

For me: I ran an mvn clean install in console(not with embedded IntelliJ maven). Then when I tried again in Intellji maven, it was working fine.

Comments

1

In my case,

  1. close intelliJ.
  2. delete ".idea" (which are hidden folders by default) from project root.
  3. open IntelliJ
  4. open settings --> find annotation processors --> check "Enable annotation processing"
  5. Open Project structure from "File" menu. Set the appropriate JDK version.

Comments

0

Since this is the first hit on Google searching for "intelliJ cannot find symbol" error, I'm gonna throw in my solution as well.

The problem for me was that my project originated from Eclipse, and some files contained dependency on classes that were generated in src/generated-sources by specifications in pom.xml. For some reason, this was not properly executed when I first opened the project and rebuilding/re-importing did not help, so the files were never generated.

The solution was to right-click on the module, and select Maven -> Generate Sources and Update Folders That solved the issue and I could compile.

Comments

0

Make sure the source file of the java class you are trying to refer to has a .java extension. It was .aj in my case (I must have hit "Create aspect" instead of "Create class" when creating it). IntelliJ shows the same icon for this file as for "normal" class, but compiler does not see it when building.

Changing .aj to .java fixed it in my case.

Comments

0

Sometimes the class you want is in the test source directory. Happened to me, anyway…

Comments

0

I was having the same problem except that I was importing the classes for which dependencies were not resolving somehow. I refreshed maven projects, Rebuild Project. It still did not resolve. Looks like IntelliJ was caching something incorrectly. I restarted IntelliJ and that resolved the dependencies. I guess it cleared the cache somehow.

Comments

0

I'm seeing a lot of answers proposing a build or a re-build but just in case this don't fix your problem just notice that IDEA can detect a method but it will not compile in case you have a new before as it will be expecting the instance.

enter image description here

Comments

0

In my case, I had a problem with finding a class from another module. In pom.xml, I just had this dependency with <scope>compile</scope> specified. Removing this line helped.

1 Comment

Isn't removing the scope still means "compile" ..?
0

This works for me, say class A depends on class B(and class c, d etc) but the error throws on class A which does not have any errors. So I try to compile class A alone first ->it shows error on the package of class B. So tried to compile whole package of class B. Now it throws which is the exact error class(on my case class B had error). Usually Intellj shows the exact error class with line number when compile/build. On some occasions it throws error in wrong place/class. Have a try.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.