클래스 파일 이름은 Java 검색에서 .class 예외로 끝나야 합니다.

StackOverflow https://stackoverflow.com/questions/6816

  •  08-06-2019
  •  | 
  •  

문제

특정 프로젝트에서 Eclipse의 Java 검색 기능을 사용할 때 발생하는 문제를 해결하는 데 누군가가 도움을 줄 수 있기를 바랐습니다.

특정 프로젝트에서 Java 검색을 사용할 때 다음과 같은 오류 메시지가 나타납니다. Class file name must end with .class (아래 스택 추적 참조)이 문제는 모든 프로젝트에서 발생하는 것은 아니며 특정 프로젝트에서만 발생하는 것 같습니다. 따라서 다시 빌드해야 할 것이 있습니까?

나는 이미 시도했다 Project -> Clean...Eclipse를 닫고, 빌드된 모든 클래스 파일을 삭제하고 Eclipse를 다시 시작하면 소용이 없습니다.

해당 문제에 대해 Google에서 찾을 수 있는 유일한 참고 자료는 다음과 같습니다. http://www.crazysquirrel.com/computing/java/eclipse/error-during-java-search.jspx, 그러나 불행하게도 그의 솔루션(닫기, 클래스 파일 삭제, 다시 시작)은 나에게 효과가 없었습니다.

누구든지 시도해 볼 만한 것을 제안할 수 있거나 추적하는 데 도움이 될 수 있는 추가 정보가 있으면 조언을 주시면 감사하겠습니다.

Version: 3.4.0
Build id: I20080617-2000

또한 방금 이 스레드를 찾았습니다. http://www.myeclipseide.com/PNphpBB2-viewtopic-t-20067.html - 프로젝트 이름에 마침표가 포함된 경우 동일한 문제가 발생할 수 있음을 나타냅니다.불행하게도 제 설정에는 그렇지 않아서 여전히 정체 상태입니다.

Caused by: java.lang.IllegalArgumentException: Class file name must end with .class
at org.eclipse.jdt.internal.core.PackageFragment.getClassFile(PackageFragment.java:182)
at org.eclipse.jdt.internal.core.util.HandleFactory.createOpenable(HandleFactory.java:109)
at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1177)
at org.eclipse.jdt.internal.core.search.JavaSearchParticipant.locateMatches(JavaSearchParticipant.java:94)
at org.eclipse.jdt.internal.core.search.BasicSearchEngine.findMatches(BasicSearchEngine.java:223)
at org.eclipse.jdt.internal.core.search.BasicSearchEngine.search(BasicSearchEngine.java:506)
at org.eclipse.jdt.core.search.SearchEngine.search(SearchEngine.java:551)
at org.eclipse.jdt.internal.corext.refactoring.RefactoringSearchEngine.internalSearch(RefactoringSearchEngine.java:142)
at org.eclipse.jdt.internal.corext.refactoring.RefactoringSearchEngine.search(RefactoringSearchEngine.java:129)
at org.eclipse.jdt.internal.corext.refactoring.rename.RenameTypeProcessor.initializeReferences(RenameTypeProcessor.java:594)
at org.eclipse.jdt.internal.corext.refactoring.rename.RenameTypeProcessor.doCheckFinalConditions(RenameTypeProcessor.java:522)
at org.eclipse.jdt.internal.corext.refactoring.rename.JavaRenameProcessor.checkFinalConditions(JavaRenameProcessor.java:45)
at org.eclipse.ltk.core.refactoring.participants.ProcessorBasedRefactoring.checkFinalConditions(ProcessorBasedRefactoring.java:225)
at org.eclipse.ltk.core.refactoring.Refactoring.checkAllConditions(Refactoring.java:160)
at org.eclipse.jdt.internal.ui.refactoring.RefactoringExecutionHelper$Operation.run(RefactoringExecutionHelper.java:77)
at org.eclipse.jdt.internal.core.BatchOperation.executeOperation(BatchOperation.java:39)
at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:709)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1800)
at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:4650)
at org.eclipse.jdt.internal.ui.actions.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:92)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)

McDowell에게 감사드립니다. 프로젝트를 닫았다가 열면 문제가 해결된 것 같습니다(적어도 지금은).

도움이 되었습니까?

해결책

Eclipse의 일부 특이성을 해결하기 위한 두 가지 범용 메커니즘:

  • 프로젝트를 닫고 엽니다.
  • 프로젝트를 삭제하고(디스크에서는 삭제하지 않음) 기존 프로젝트로 다시 가져옵니다.

실패하면, bugs.eclipse.org 답을 줄 수도 있습니다.

작업공간이 손상된 것을 캐싱하고 있는 경우, 여기저기를 살펴보며 삭제할 수 있습니다. 작업 공간/.metadata/.plugins.그 중 대부분은 매우 일시적입니다(삭제된 기본 설정을 백업하고 감시하지만).

다른 팁

논평 #9 버그 269820 증상이 심각한 손상된 인덱스에 대한 해결책으로 보이는 검색 인덱스를 삭제하는 방법을 설명합니다.

다음 동안 내부 오류가 발생했습니다."항목 필터링".
클래스 파일 이름은 .class로 끝나야 합니다.

메세지 박스.

검색 색인을 삭제하는 방법:

  1. Eclipse 닫기
  2. <작업공간>/.metadata/.plugins/org.eclipse.jdt.core/*.index 삭제
  3. <작업 공간>/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt 삭제
  4. 이클립스를 다시 시작하세요

저번에 이 오류가 발생했습니다.내 출력 폴더에서 모든 .class 파일과 리소스를 수동으로 삭제해 보았습니다.작동하지 않았습니다.컴퓨터(WinXP)를 다시 시작했습니다.작동하지 않았습니다.Eclipse에서 내 프로젝트를 닫았다가 다시 열었습니다. 일했다 !!! 이것이 누군가의 문제를 해결해주기를 바랍니다.검색 기능은 Eclipse에 꼭 필요한 기능입니다.

최근에도 이 문제가 발생했는데 아래 시나리오가 저에게 효과적이었습니다.

  1. Eclipse 닫기
  2. 삭제 <workspace>/.metadata/.plugins/org.eclipse.jdt.core/*.index
  3. 삭제 <workspace>/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt
  4. 이클립스를 다시 시작하세요

프로젝트를 닫는 것은 나에게 도움이 되지 않았습니다.나는 -clean 플래그를 사용하여 Eclipse를 시작했는데 어떤 이유로든 작동했습니다.

단지

  • 프로젝트 닫기
  • 수동으로 출력 폴더 지우기
  • 프로젝트 열기

(Eclipse 3.5 SR2, 빌드 ID:20100218-1602)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top