Eclipse / Java 코드 완료가 작동하지 않습니다


594

일부 플러그인 (주목할 수있는, EPIC, Clearcase, QuantumDB, MisterQ)과 함께 Eclipse 3.4.2를 다운로드, 압축 해제 및 설정했습니다.

이제 Java 프로젝트를 편집 할 때 코드 완성이 작동하지 않습니다. 입력 String.하고 ctrl+를 누르면 space팝업에 "기본 제안 없음"이 표시되고 하단의 상태 표시 줄에 "사용 가능한 완료 없음"이 표시됩니다.

어떤 아이디어?


1
우분투에서이 문제를 해결하려는 사람들에게는 [여기에 답이 있습니다] [1]. [1] : askubuntu.com/questions/243639/...
— 신타

답변:


1245

' ' 에서 기본 옵션 을 복원 해보십시오Windows > Preferences > Java > Editor > Content Assist > Advanced

이 기본 설정 화면에 표시되는 데이터 종류의 예이지만 반드시 현재 가지고있는 것은 아닙니다.

일식 콘텐츠 지원 설정

( 이 블로그 게시물의 Vadim 에서 "Eclipse (Mylyn)의 Content Assist Duplicates" :
Mylyn 항목이 중복 된 경우 (Mylyn)이름에 " "가 포함되지 않은 중복 항목의 선택을 취소하십시오 )

이클립스 도움말 페이지는 복원 할 기본 목록을 정의합니다 :

'기본'컨텐츠 지원 목록에 포함 된 제안 종류를 선택하십시오 .

  • 다른 Java 제안,
  • SWT 템플릿 제안,
  • 템플릿 제안,
  • 제안서

3
내 환경에서 이것이 어떻게 바뀌 었는지 전혀 모르겠습니다. 확실히하지는 않았지만 솔루션이 작동합니다! 감사.
— pstanton

71

다른 사람이 Google에서 이것을 찾을 수 있도록 여기에 답변을 추가하고 있습니다. 동일한 증상; 다른 문제. 나를 위해 유형 캐시가 손상되었습니다.

에서 http://mschrag.blogspot.co.nz/2009/01/open-type-cant-find-your-class.html

  • 이클립스 종료
  • workspace / .metadata / .plugins / org.eclipse.jdt.core로 이동하십시오
  • * .index 및 savedIndexNames.txt 제거
  • Eclipse를 다시 시작하고 Ctrl+ T를 위반하는 유형을 검색하십시오 . 인덱스가 다시 작성됩니다.

+1, 이것은 나를 위해 일했습니다. 또한 이전에 Eclipse로 고통 받고 있었으며 모든 옵션이 달리 말했지만 프로젝트가 1.5에 있다고 생각했기 때문에이 문제 중에 손상되었을 것입니다.
— Philip Guin

3
잠깐만 방법을 시도한 후 CA는 정확히 한 번 작동 한 다음 다시 폭발합니다. 어. 전체 작업 공간을 다시 만든 후에도 문제가 지속됩니다. 다른 해결책은 효과가 없습니다 ...
— Philip Guin

2
+1. 참고 : 람다 식으로 컨텐츠 지원을 시도하면 Eclipse 버전에서 잘 지원되지 않을 수 있습니다.
— Bludwarf

잘 작동했습니다. 감사합니다!
— Modo

27

누군가 여기 와서 자동 완성 기능을 활성화하려면

Preferences -> Java -> Editor -> Content Assist.

그런 다음 자동 활성화 섹션에서 Java에 대한 자동 활성화 트리거 를 채우십시오 .

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ._

여기에 이미지 설명을 입력하십시오


큰 코드 기반으로 인해식이 매우 느려질 수 있습니다.
— J-ho

19

IBus 플러그인이 활성화 된 Xfce +를 실행하는 경우 키보드 단축키 충돌이있을 수 있습니다.

내 블로그에 대한 자세한 정보를 참조하십시오 : http://peter-butkovic.blogspot.de/2013/05/keyboard-shortcut-ctrlspace-caught-in.html

업데이트 :

@nhahtdh의 의견에서 제안한 것처럼 직접 대답 할 수있는 더 많은 정보를 추가하십시오 .Xfce의 IBus 플러그인은 기본적으로 키보드 레이아웃 전환을 위해 단축키 Ctrl+ Space단축키를 사용합니다 . 변경하려면 옵션으로 이동하여 원하는 다른 것으로 변경하십시오.


3
나중에 사용할 수 없게 될 경우를 대비하여 블로그의 필수 부분을 여기에 포함하십시오.
— nhahtdh

2
의 동일한 문제입니다 LXDE. Preferences->로 이동 Keyboard Input하여 Next input method바로 가기를 제거하십시오 .
— Kshitiz Sharma

1
Cinnamon 데스크톱 환경에서도 동일한 문제가 나타납니다.
— Akkusativobjekt

11

프로젝트의 라이브러리를 확인하십시오. 동일한 클래스가 사용 가능한 두 개의 jar 파일을 포함하거나 코드의 한 클래스가 두 개의 jar 파일에서 참조 될 수 있다고 말했을 수 있습니다. 이 경우 일식은 코드가 완전히 혼란 스러우므로 코드 지원을 중지합니다.

이를 확인하는 더 좋은 방법은 지원이 작동하지 않는 파일로 이동하여 가져 오기를 하나씩 추가하고 코드 가져 오기가 작동하는지 여부를 각 가져 오기에서 확인하는 것보다 모든 가져 오기를 주석 처리하는 것입니다. .


9

이 중 어느 것도 나를 위해 일하지 않았습니다.

한 번만 특정 수업 에서이 문제가 발생했습니다. 마침내 나를 위해 일한 것은 문제를 일으키는 클래스를 삭제하고 다시 만드는 것이 었습니다. 문제가 해결되었습니다.


5

IE 용 Google 툴바를 설치 한 경우 동일한 문제가 발생할 수 있습니다. 툴바는 단축키 ctrl을 캡처하기 때문 +Space입니다.


5

나는이 문제가 있었고 @Marc와 같은 특정 클래스에서만. Open With = Java Editor를 지정해야한다는 것을 알았습니다. 이클립스 초보자로서 나는 단지 평범한 텍스트 편집기를 사용하고 있다는 것을 깨닫지 못했습니다.

패키지 탐색기에서 파일을 마우스 오른쪽 버튼으로 클릭하고 "연결 프로그램"을 선택하십시오.


4

나는이 문제에 직면하여 문제를 파악하기 위해 몇 시간을 보냈다. 위의 다른 답변에 언급 된 단계를 따르려고했는데, 찾은 해결책은 Mona이 제안한 것과 같은 줄에 있지만 약간 다릅니다. Mona의 답변에 의견을 추가하려고 시도했지만 사용할 수있는 옵션이 없습니다. 내 일식 문제는 클래스 패스가 어떻게 든 손상되었고 모든 항아리와 종속 프로젝트가 누락되었다는 것입니다. 저장소에서 최신 .classpath를 가져온 후 정상적으로 작동했습니다.


4

나는 또한이 문제에 직면했지만 다른 방식으로 해결되었습니다. 내가 따르는 단계는 다른 사람들에게 도움이 될 수 있습니다.

  1. 프로젝트 (작업중 인 프로젝트)를 마우스 오른쪽 버튼으로 클릭하십시오.
  2. 특성> Java 빌드 경로> JRE 시스템 라이브러리로 이동하십시오.
  3. 오른쪽의 편집 ...을 클릭하십시오
  4. JRE 7을 선택하십시오

4

구성을 확인한 후에도 여전히 작동하지 않습니다.

  • 디렉토리 구조가 올바른지 확인하십시오.

파일 옆에 오른쪽 아이콘이 보입니까? :

여기에 이미지 설명을 입력하십시오

Eclipse에서 파일을 처리하는 방법을 알려줍니다.

여기에 이미지 설명을 입력하십시오

Maven webapp artifact와 함께 그 이야기를 했으므로이 답변을 게시하고 있습니다. 기본적으로 Maven-WebApp은 소스 폴더를 만들지 않으며 Java를 리소스에 넣고 5 분 동안 무슨 일이 있었는지 궁금합니다 ... :)


3

창> 환경 설정> Java> 모양> 유형 필터에서 많은 옵션을 필터링하지 않았는지 확인하십시오.

이 목록의 항목은 빠른 수정으로 표시되거나 자동 완성되거나 열기 유형 대화 상자와 같은 다른 여러 위치에 나타나지 않습니다.


3

나를 위해 일한 또 다른 솔루션은 Java-> 모양-> 유형 필터로 이동하여 모두 비활성화하는 것입니다.여기에 이미지 설명을 입력하십시오


3

아마도 이것은 같은 문제를 겪는 다른 사람들을 도울 수 있습니다.

내 설정 : Gradle Import Wizard를 사용하여 STS (Eclipse Oxygen.2 (4.7.2))로 가져온 다른 사람이 만든 오래된 Gradle 프로젝트 (버전 Gradle 2.12).

코드 완성도 작동하지 않았지만 (Java 파일에는 여전히 빈 J가 있습니다.) 최소한 다음을 수행하여 코드 완성을 얻었습니다.

  • 프로젝트 폴더를 마우스 오른쪽 버튼으로 클릭하고 속성> Gradle> 작업 공간 설정 구성> Java> 편집기> 컨텐츠 지원> 고급
  • "창 위쪽의 Java 제안서"를 확인하십시오.
  • 2 배 적용 후 닫기

2

필자의 경우 Intellisense는 한 프로젝트에서 몇 클래스에서만 사라졌습니다. 빌드 경로에서 라이브러리가 누락 되었기 때문입니다 (이전에는 작동했지만).

따라서 Eclipse의 모든 오류 또는 문제를 확인하고 라이브러리가 누락되었는지 확인하십시오.


2

나는 이것에 부딪 쳤고 자바 편집기가 아닌 텍스트 편집기로 파일을 여는 중이었습니다.

https://stackoverflow.com/users/607470/elroy-flynn 응답 에 댓글을 달고 싶지만 댓글 추가는 50 점을받은 후에 만 ​​작동합니까? 확실하지 않은 WTF입니다 ...

고마워, 톰


평판 블록은 기본적으로 사람들이 더 많은 것 외에 더 많은 것을 얻을 이유가 있습니다. 또한 커뮤니티에 참여하고 존중하는 정도를 측정하는 척도 (예 : 평판)의 역할을하므로 평판이 높아질수록 더 많은 특권을 얻게됩니다. 사이트 작동 방식에 대한 자세한 설명은 stackoverflow.com/tour를 참조하십시오 .
— Amndeep7 2016 년

이것은 실제로 주석 일뿐입니다. 언급 한 답변은 이미 텍스트 편집기 문제를 다룹니다. 삭제하고 싶지 않으면 업장을 잃고 싶지 않습니다.
— 누 메논

1

나에게 문제는 동일한 라이브러리의 여러 버전 간 충돌이었습니다. Eclipse 지원은 maven보다 이전 버전을 사용하고있었습니다.

.m2 디렉토리로 이동하여 원치 않는 lib 버전 + 재시작 이클립스를 삭제해야했습니다.


1

프로젝트 디렉토리에 속하지 않는 파일을 편집 할 때 Eclipse Neon에서 문제점이 발생합니다 . 동일한 파일을 src 디렉토리가 아닌 프로젝트 루트 디렉토리에 복사하면 완료가 시작됩니다.

다른 디렉토리에서 파일을 열면 JRE 완료 만 작동합니다. 예를 들면 : java.완료하지만 junit.그렇지 않습니다.


1

아무 일도 일어나지 않는 필사적 인 지점에 도달 한 경우를 대비하여 ... 어떻게 든 콘텐츠 지원이 축소되어 제안이 표시되지 않아 "Java가 아닌 경우 Ctrl + Space를 누르십시오 ..."라는 메시지가 표시됩니다. 따라서 컨텐츠 지원의 모서리를 드래그하여 팝업을 확대하는 것입니다.

부끄러운 줄 알아 도움이 되길 바랍니다.

참고 : 이것은 Eclipse Oxygen을 사용하는 Xfce4가 설치된 Ubuntu 서버입니다.


1

최신 3-19 이클립스 빌드를 사용하는 사람들을 위해 :

산소 에서 3-19 일식 버전으로 업그레이드 할 때 방금 발생 했기 때문에 업그레이드 프로세스 중에 자동 완성 기능이 올바르게 마이그레이션되지 않는다고 가정합니다.

나를 위해 일한 유일한 솔루션은 새로운 일식 작업 공간을 만들고 프로젝트를 가져 오는 것입니다. 몇 분이 걸릴 수 있지만 다른 솔루션에 소비 한 시간과 비교하면 가치가 있습니다 ...


예, Java 메소드를 탐색 할 수 없습니다. 탐색 / 열기 선언이 작동하지 않습니다.를 클릭하십시오. 그리고 이것은 꽤 자주 일어나며, 자바 클래스 파일은 효과적으로 텍스트 파일이되었습니다. 그래서 작업 공간을 계속 삭제하고 maven 프로젝트를 1 분 안에 다시 가져옵니다.
— signonsridhar


0

Eclipse 2019-09로 업그레이드 한 이후이 문제가 발생했습니다. 위의 제안 중 일부를 기반으로 이것이 나를 위해 일한 것입니다.

Eclipse-> 환경 설정-> Java-> 편집기-> 컨텐츠 지원-> 고급으로 이동해야했습니다.

Java 편집기 / 콘텐츠 지원 고급

키 바인딩 제안, Java Non-Type, Java, Java (Task-Focused) 또는 Java Type 제안 중 하나를 켜면 자동 완성을 사용할 수 있다는 것을 알았습니다. 내가 모두 켜면 자동 완성 작업뿐만 아니라 중복 된 메소드가 나열됩니다. 나는 추측하고 있지만 아마도 Java Type Proposals를 사용할 것입니다. 이 네 가지 유형의 차이점에 대한 설명이 있으면 감사하겠습니다.


0

Java Spring Boot 프로젝트에서 STS를 실행하면 다음과 같이 작동합니다.

여기에 이미지 설명을 입력하십시오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.