Intellij의 Java 프로젝트에서 "심볼을 찾을 수 없음"이 표시됨


96

클래스에서 정적 싱글 톤 인스턴스를 호출합니다 GameManager.java.

HUD.getInstance().update(timeDelta);

HUD.javaHUD클래스 HUDTextElement및 다른 두 개의 관련 클래스 가 포함되어 있습니다 HUDElement. 모든 클래스는 동일한 루트 경로에 ../src/org/mypackage있습니다.

그러나 IntelliJ 에서이 Java 프로젝트를 컴파일 할 때 호출 하는 줄에서 Symbol HUD찾을 수 없습니다HUD.getInstance() .

이 똑같은 코드는 이클립스에서 잘 컴파일됩니다. 문제가 무엇인지 아십니까?


1
둘 다 HUD 클래스를 가져 왔습니까?
Alex Coleman

이것은 나를 위해 일한이 문제에 대한 유일한 해결책입니다 stackoverflow.com/a/56473166/8660553
사힐 Singhal이

답변:


167

Build-> Rebuild Project를 선택하면 문제가 해결됩니다.


17
Java / IntelliJ에 대한 완전한 멍청이에 대한 참고 사항 : 위의 내용은 "Build Project"와 다릅니다.
hiljusti

4
@JustinHill-저는 이클립스에 정통하고 IntelliJ를 처음 사용합니다. 두 가지와 IntellJ와 함께 시간을 보내는 데 도움이되는 포인트 / 링크의 차이점에 대해 저를 도와 줄 수 있습니까?
nanosoft

1
나는 아마도 구글 검색보다 더 나쁜 자원 일 것이다. 나는 이클립스를 사용하지 않았다. 내 의견은 "프로젝트를 재 구축"및 다른 옵션을하는 "프로젝트 빌드"(나는이 건너 온 사람을 돕고 있었다 그들이 옵션의 차이를 통보하지 않았다) 단지이다
hiljusti

1
왜 이것이 효과가 있었습니까? 캐시 무효화 및 다시 시작도 작동하지 않았습니다.
b15

"받는다는 클린 컴파일"을 실행 시도 .... 근무하지만 문제가 해결되지 않았다
Omtara

54

나도 같은 문제가 있었는데 새 프로젝트를 완전히 컴파일 한 적이 없었습니다. 따라서 마우스 오른쪽 버튼을 클릭하고 컴파일 ''(Mac의 경우 shift-cmd-F9)을 선택하여 수정했습니다. 저장시 컴파일이 컴파일되지 않은 파일을 '보지'않는 것 같습니다.

제 경우 에는 src 폴더를 소스로 표시해 도움 이 되지 않았습니다 .


44

동일한 문제가 발생하여 파일> 캐시 무효화 / 다시 시작을 클릭하여 수정했습니다.


1
조심하십시오 -변경 사항이 있고 커밋되지 않은 경우 손실됩니다. :)
Nikola

4
캐시를 무효화해도 변경 사항이 손실되지는 않습니다. 나는 그것이 어떻게 작동하는지조차 확신하지 못합니다. 파일을 저장하면 IntelliJ 캐싱이나 리포지토리에 커밋에 관계없이 저장됩니다.
Christopher Schneider

29

../src 폴더가 Intellij IDEA에서 "source"폴더로 표시되지 않았기 때문에 클래스를 찾기 위해 거기에서 찾을 수 없습니다. 프로젝트 탐색기에서 폴더를 마우스 오른쪽 버튼으로 클릭하고 "소스 폴더로 표시"를 선택하여이 문제를 해결할 수 있습니다.


1은 가능성이 있지만 2는 HUD를 찾을 수 없다는 오류가 아니라 getInstance / update 메소드가 없다는 오류를 표시합니까?
Alex Coleman

이 옵션은 사라진 것 같습니다.
clankill3r 2013 년

아니오, 팝업 옵션으로 변환됩니다. "Mark Directory As>"
Dracontis

내 src에는 내부 테스트 폴더와 다중 모듈이 포함되어 있으므로 Source Root로 표시 한 후 내 문제가 최악입니다.
괜찮다 노래

저에게 이것은 정답에 가깝습니다. 내 소스 루트가 이미 표시되어 있지만 오류를 수정하려면 "소스 루트로 표시 해제"한 다음 다시 소스 루트로 표시해야했습니다.
yanni

26

내가했을 때 동일한 "기호를 찾을 수 없음"오류가 발생했습니다 Build -> Make Project. 내 메이븐 삭제하여이 문제를 해결 /target오른쪽 폴더를 내 프로젝트 모듈을 클릭하고 Maven -> Reimport, 그리고 일 Build -> Rebuild Project. 이것은 IntelliJ Idea 13.1.5에있었습니다.

Maven -> Reimport내가 마침내 그것을하기 전에 문제가 몇 번 다시 나타났기 때문에 그것이 핵심이었다.


12

지금까지 도움을 주셔서 감사합니다. 수정은 먼저 HUD.java를 컴파일하는 것이 었습니다 (파일을 마우스 오른쪽 버튼으로 클릭-> HUD.java 컴파일). 자바 파일을 컴파일 한 후 프로젝트의 나머지 부분을 문제없이 컴파일 할 수 있습니다.

왜 이것이 수정되었는지 또는 IntelliJ가 이것을 자동으로 수행하지 않는지 모르겠지만 루트 오류는 IntelliJ가 단일 .java 파일에서 여러 클래스를 올바르게 처리하지 못하는 것과 관련이있는 것 같습니다.


1
IntelliJ는 단일 파일에서 여러 클래스를 잘 처리 할 수 ​​있습니다. 파일이 어느 시점에서 컴파일되었는지 확인하기 만하면됩니다.
Makoto

예, 단일 클래스 파일에 대해 동일한 문제가 있다는 점을 제외하면. 이상하게도이 maven 명령을 실행하기 직전에 제대로 실행되었습니다 mvn com.zenjava:javafx-maven-plugin:2.0:fix-classpath. libs 디렉토리에서 현재 JDK의 ext 디렉토리로 javafx jar를 이동하는 것을 의미합니다. 여기 에서 찾았습니다 .
nihilon

7

프로젝트를 마우스 오른쪽 버튼으로 클릭하고 "Run Maven"하위 메뉴에서 "Reimport"를 선택해야했습니다.


5

내 프로젝트에서 maven을 사용합니다. 어떤 이유로 IntelliJ가 이러한 종류의 이상한 오류를 제공했습니다. mvn clean을 실행하고 재 동기화를 시도했는데 이러한 오류가 사라졌습니다.


1
clean은 maven 수명주기입니다. maven 프로젝트에서 만든 모든 출력 파일을 정리하려는 경우 사용합니다.
Moiz Raja 2013 년

5

나를 위해-이 단계를 시도했지만 (Invalidate Cache & Restart, Maven Reimport)) 작동하지 않았습니다. 내가 삭제 그래서 .idea, .settings.project폴더를 시도 - 그것은했다.


3
.idea폴더를 삭제하면 나에게 도움이되었습니다.
Daniel D.

4

폴더를 삭제 한 다음 프로젝트에 다시 복사하여 붙여 넣었을 때 이런 일이 발생했습니다.

Right-click project folder -> Rebuild 나를 위해 일했습니다.


3

나는 같은 문제에 직면했고 대답에 많은 해결책이 주어졌고 이러한 모든 해결책을 시도하는 데 꽤 시간이 걸렸으므로 여기 에서이 오류가 발생하면 체계적인 접근 방식을 제안하고 싶습니다.

다음 사항을 확인하고 누락 된 항목이 있으면 생성 / 업데이트합니다.

  1. src 폴더가 소스 폴더로 표시됩니다.
  2. .imls 파일이 있습니다.
  3. 주석 처리가 활성화되었습니다.
  4. 최근에 @UtilityClass를 사용한 경우 버그 링크 가 원인 일 수도 있습니다.

모든 것이 정상이면 주어진 순서대로 해결책을 시도해 볼 수 있습니다.

  1. 파일 / 모듈 재 컴파일

  2. 그래도 문제가 해결되지 않으면 Maven 종속성을 새로 고치고 다음을 사용하여 프로젝트를 빌드하십시오. Maven -> Reimport 하고Build -> Rebuild Project

  3. 시험 mvn clean install -DskipTests

  4. IntelliJ 캐시를 무효화하고 IDE를 다시 시작하십시오. File > Invalidate caches/ restart

  5. .idea 폴더를 삭제하고 프로젝트를 다시 가져옵니다.

이 질문에 답 해주신 모든 분들께 감사 드리며, 각 점에 대한 자세한 설명은 답변을 참조하실 수 있습니다.


1
작동 : 파일> 캐시 무효화 / 다시 시작
에너지

2

이것은 오래된 질문이라는 것을 알고 있지만 최근 경험에 따르면 빌드 리소스가 삭제되었거나 Idea가 소스로 인식 할 수 없기 때문에 발생합니다.

오류가 나타날 때마다 폴더 / 디렉터리의 소스를 제공하면이 오류를 해결해야합니다.

때로는 전체 폴더에 대한 소스를 할당하더라도 개별 클래스를 여전히 사용할 수 없습니다. 초보 사용자의 경우 간단한 해결책은 새 복사본을 가져 와서 애플리케이션을 다시 빌드하는 것입니다.

그 후에 새로 설치하는 것이 좋습니다.


2

메인 Application.java 클래스를 다시 컴파일하면 저를 위해 클래스> 다시 컴파일을 마우스 오른쪽 버튼으로 클릭하십시오.


2

이 스레드가 오래되었다는 것을 알고 있지만 다른 해결책은

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

IntelliJ에서 CMD + Shift + A (mac os)-> "모든 Maven 프로젝트 다시 가져 오기"를 입력합니다.

그래도 작동하지 않으면 Maven 종속성을 다시 다운로드하십시오.

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

제 경우에는 코드의 다른 부분이 참조한 자동 생성 클래스 (XML 파일 기반)가있었습니다. maven 작업으로 빌드하는 동안 mvn installed가 아니라면 IntelliJ는 이러한 참조를 보지 못했고 실행 환경에 실패했습니다.
tokosh jul.

2

저에게는 주석 처리를 활성화해야하기 때문에 Lombok에 문제가있었습니다. 이 확인란은Settings > Build > Compiler > Annotation Processors


감사합니다! 이것은 나를 위해 그것을 고쳤습니다.
nyarasha

1

필자의 경우 문제는 Intellij Idea의 Java 프로젝트에서 Lombok의 실험적 기능인 @UtilityClass를 사용하여 클래스 메서드를 "정적"으로 주석 처리하는 것이 었습니다. 주석을 사용하는 대신 클래스의 각 메서드를 "정적"으로 명시 적으로 만들었을 때 모든 컴파일 문제가 사라졌습니다.


0

이것은 "intelliJ가 기호를 찾을 수 없음"오류를 검색하는 Google의 첫 번째 히트이므로 내 솔루션도 제공 할 것입니다.

나에게 문제는 내 프로젝트가 Eclipse에서 시작되었고 일부 파일에는 src/generated-sourcespom.xml의 사양에 의해 생성 된 클래스에 대한 종속성이 포함되어 있다는 것 입니다. 어떤 이유로 프로젝트를 처음 열었을 때 제대로 실행되지 않았고 다시 빌드 / 다시 가져 오기가 도움이되지 않아 파일이 생성되지 않았습니다.

해결책은 모듈을 마우스 오른쪽 버튼으로 클릭하고 Maven -> Generate Sources and Update FoldersThat solved the issue and I could compile (컴파일 할 수 있음)을 선택하는 것입니다.


0

참조하려는 Java 클래스의 소스 파일에 .java확장자 가 있는지 확인하십시오 . 그것은이었다 .aj(그것을 만들 때 내가 대신 "클래스 만들기"의 "측면을 만들기"공격해야합니다) 내 경우. IntelliJ는 "일반"클래스와 동일한 아이콘을이 파일에 표시하지만 컴파일러는 빌드 할 때이 아이콘을 보지 않습니다.

변경 .aj.java내 케이스에 고정.


0

때로는 원하는 클래스가 test소스 디렉토리에 있습니다. 어쨌든 나에게 일어난 일 ...


0

종속성이 어떻게 든 해결되지 않는 클래스를 가져 오는 것을 제외하고는 동일한 문제가 발생했습니다. Maven 프로젝트, Rebuild Project를 새로 고쳤습니다. 여전히 해결되지 않았습니다. IntelliJ가 무언가를 잘못 캐싱 한 것 같습니다. IntelliJ를 다시 시작했고 종속성이 해결되었습니다. 어떻게 든 캐시를 지운 것 같습니다.


0

Lombok을 사용하는 경우 주석 처리를 활성화했는지 확인하십시오.


0

빌드 또는 재 빌드를 제안하는 많은 답변을 보았지만 문제가 해결되지 않는 경우 IDEA가 메서드를 감지 할 수 있지만 new이전에 있는 경우 컴파일되지 않습니다 . 인스턴스가 필요합니다.

여기에 이미지 설명 입력


0

제 경우에는 다른 모듈에서 클래스를 찾는 데 문제가있었습니다. 에서는 지정된 pom.xml종속성이 <scope>compile</scope>있습니다. 이 줄을 제거하는 것이 도움이되었습니다.


-1

나는 이것이 오래되었다는 것을 알고 있지만 다른 사람에게는 누락 된 클래스가 오류가 발생한 클래스 / 호출 위치와 동일한 패키지에 있는지 확인하십시오.


다른 패키지에서 클래스를 가져올 수 있으므로 거부되었습니다. 일반적으로 대상 클래스는 가져와야하며 클래스 경로에 있어야합니다. Maven을 사용할 때 종속성을 올바르게 설정해야합니다.
fxnn
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.