Eclipse : 선언 된 패키지가 예상 패키지와 일치하지 않습니다.


87

외부 프로젝트를 가져 오는 데 문제가 있습니다. File-> Import ...-> Existing Projects into Workspace로 이동하여 프로젝트가 위치한 폴더를 선택하고 모든 항목을 가져옵니다.하지만 프로젝트의 패키지 이름은 Eclipse가 예상하는 것과 다른 것 같습니다. 패키지 이름에는 모두 접두사가 있습니다.

prefix.packagename1
prefix.packagename2

기타

그러나 Eclipse는

src.prefix1.prefix.packagename1
src.prefix1.prefix.packagename2

디렉토리가 src / prefix1 / prefix / package1이기 때문입니다.

나는 외부 코드를 엉망으로 만들고 싶지 않습니다. Eclipse에서 "src / prefix1"디렉토리를 무시하도록하려면 어떻게해야합니까? 아니면 무엇을 할 수 있습니까?


내가 추가 한 package (name of package under which the file to be ) 파일의 시작에서
사이 람에게

답변:


106

그냥 빌드 경로에 가서 할 소스 경로를 변경 src/prefix1하는 대신 src.

src디렉토리 를 마우스 오른쪽 버튼으로 클릭 하고 "Build Path / Remove from build path"를 선택한 다음 src/prefix1디렉토리 를 찾아 마우스 오른쪽 버튼으로 클릭하고 "Build Path / Use as source folder"를 선택 하는 것이 가장 쉽습니다 .


2
방금 한 작업을 취소하려면 어떻게합니까? "Build Path / Use as source folder"를 클릭했는데 더 이상 작동하지 않습니다. 편집 : 내 질문에 대한 대답은 "구성 빌드 경로"로 가서 SRC하지 않습니다 / 또는 세대 / 그 목록에서 펑키 일을 제거하는 것입니다
ArtOfWarfare

25
Jon의 제안이 작동하지만 Eclipse를 다시 시작해야 할 수도 있습니다.
Samik R

1
!! 소스 폴더를 변경 한 후에도 오류가 계속 표시되면 프로젝트를 빌드하십시오. Eclipse는 가끔 뭔가를 부수고 싶게 만듭니다.
MattC 2013

4
열기 / 닫기가 나를 위해 일한 PRJ ... 이클립스 큰 도구입니다, 때로는 일을 잊을 수
niken

고마워 친구, 훌륭한 솔루션.
Runcorn

71

방금이 문제에 부딪 혔고 Skeet 씨의 솔루션이 저에게 효과가 없었기 때문에이 문제를 어떻게 해결했는지 공유하겠습니다.

소스 디렉토리를 선언하기 전에 'src'에서 java 파일을 열었습니다.

Eclipse에서 'src'디렉토리를 마우스 오른쪽 버튼으로 클릭 한 후 '빌드 경로'를 선택한 다음 '소스 폴더로 사용'을 선택합니다.

이미 열린 자바 파일을 닫았다가 다시 엽니 다 (F5 새로 고침이 작동하지 않음).

"prefix1"부터 파일의 패키지와 일치하는 Java 파일 경로를 제공했습니다 (요청자의 질문 prefix1.prefix.packagename2의 예). 이것은 작동합니다

Eclipse는 더 이상 'src'에 대해 불평하지 않습니다.


1
그게 다야. 매우 간단하지만 잠시 동안 갇혀 있습니다. 감사!
Christian Vielma 2015 년

빌드 경로를 닫고 다시 열면 파일이 나에게도 필요했습니다. 감사!
ed-

예! 나를 위해 일했습니다.
Robert Casey

11

문제 * .java 파일을 다른 폴더로 이동하십시오.

'src'항목을 클릭하고 "F5"를 누르십시오.

적십자는 사라질 것입니다.

* .java 파일을 "패키지 경로"로 되돌리고 'src'항목을 클릭 한 다음 "F5"를 누릅니다.

모두 괜찮을 것입니다.


2

기존 프로젝트를 가져온 경우 소스 폴더를 제거한 다음 빌드 경로에 다시 추가하고 Eclipse를 다시 시작하십시오. 대부분의 경우 Eclipse는 다시 시작할 때까지 오류를 계속 표시합니다.


2

나를 위해 일한 유일한 것은 프로젝트를 삭제하고 다시 가져 오는 것입니다. 매력처럼 작동합니다 :)


1

실패한 빌드가 IDE 외부에서 실행 된 후에 발생합니다. 작업 공간 정리가 작동하지 않으면 다음을 시도하십시오. 1) 모든 프로젝트 삭제 2) STS / eclipse를 닫고 다시 시작, 3) 프로젝트 다시 가져 오기


0

.classpath 파일이없는 Android 프로젝트를 가져올 때 Eclipse에서이 문제가 발생하는 경우가 있습니다. Eclipse가 만드는 것은 Android가 예상하는 것과 정확히 일치하지 않습니다. 그러나 Android .classpath 파일은 일반적으로 모두 상대적이므로 다른 프로젝트의 올바른 .classpath 파일을 잘못된 .classpath 위에 복사합니다. 이 작업을 수행하는 방법을 보여주는 비디오를 만들었습니다. https://www.youtube.com/watch?v=IVIhgeahS1Ynto


0

프로젝트에 package name1.name2.name3.name4 (선언 된 패키지) 와 같은 패키지가 있다고 가정합니다.

패키지 탐색기에
name1.name2라는 이름의 패키지 최상위 수준 이름이 name3.name4 인
하위 패키지가 표시됩니다.

Eclipse는 가져온 지점에서 시작하여 디스크의 파일 디렉토리 구조에서 패키지 이름을 추출하기 때문에 오류가 발생합니다.

내 경우는 작업 공간 외부의 폴더에 대한 심볼릭 링크를 사용했기 때문에 좀 더 복잡했습니다.

먼저 Build Path.Java Build Path.Source Tab.Link Source Button.Browse to the folder before name1 in your package.Folder-name as you like (i think). 그러나 문제가있었습니다.

그런 다음 빌드 경로에서 폴더를 제거하고 파일> 가져 오기 ...> 일반> 파일 시스템> 다음> 디렉토리에서> 찾아보기 ...를 클릭하여 name1 위의 폴더로> 고급 단추 클릭> 작업 공간에서 링크 작성 확인> 완료 클릭 단추.


진실. 제 경우에는 프로젝트 이름에 -2.0.0-SNAPSHOT라는 접미사가 추가되었습니다. 해당 접두사를 제거하고 (프로젝트 이름 바꾸기 ..) 모든 것이 작동했습니다.
JRun

0

프로젝트의 src 폴더로 이동하여 모든 코드를 임시 위치로 복사하고 프로젝트를 빌드하십시오. 이제 임시 위치에서 프로젝트 src로 실제 코드를 복사합니다. 그리고 빌드를 다시 실행하십시오. 문제가 해결됩니다.

참고 : 이것은 Eclipse에만 해당됩니다.


0

방금 같은 문제가 발생했습니다. 그러나 처음 몇 가지 답변은 나를 위해 작동하지 않습니다. 해결책을 제안합니다. .classpath 파일을 변경합니다 . 예를 들어 다음과 같이 classpathentry 노드의 경로를 정의 할 수 있습니다 . src / prefix1 / resources ". 도움이되기를 바랍니다.


0

나에게 문제는 기존 프로젝트를 maven으로 변환하고 문서에 따라 폴더 구조를 만들고 패키지의 일부로 'main'폴더를 표시한다는 것입니다. Jon Skeet / JWoodchuck과 유사한 지침에 따라 Java 빌드 경로로 이동하여 깨진 빌드 경로를 모두 제거한 다음 빌드 경로를 'src / main / java'및 'src / test / java'로 추가했습니다. 각각의 리소스 폴더로 사용하고 문제를 해결했습니다.


0

빌드 경로에는 패키지 이름의 '이전까지'경로가 포함되어야합니다.

예를 들어 폴더 구조가 다음과 같은 src/main/java/com/example/dao 경우 import 문을 포함하는 클래스가 'package com.example.dao'잘못된 패키지 오류를 불평하면 빌드 경로가 include:src/main/java 문제를 해결해야합니다.


-1
  1. 패키지가있는 외부 폴더를 마우스 오른쪽 버튼으로 클릭하십시오.
src.prefix1.prefix.packagename1 
src.prefix1.prefix.packagename2
  1. 빌드 경로-> 빌드 경로에서 제거를 클릭하십시오.

  2. 이제 프로젝트의 폴더 섹션에서 prefix1 폴더로 이동합니다.

  3. 마우스 오른쪽 버튼으로 클릭-> 빌드 경로-> 소스 폴더로 사용.

  4. 끝난. 이제 패키지 폴더에 오류가 표시되지 않습니다. 여전히 표시되면 프로젝트를 다시 시작하십시오.

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