programing

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

nasanasas 2020. 10. 7. 07:45
반응형

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


외부 프로젝트를 가져 오는 데 문제가 있습니다. 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"디렉토리를 무시하도록하려면 어떻게해야합니까? 아니면 무엇을 할 수 있습니까?


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

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


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

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

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

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

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

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


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

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

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

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

모두 괜찮을 것입니다.


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


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


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


프로젝트에 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 위의 폴더로> 고급 단추 클릭> 작업 공간에서 링크 작성 확인> 완료 클릭 단추.


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

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


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


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


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


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

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

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

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

참고 URL : https://stackoverflow.com/questions/7628686/eclipse-the-declared-package-does-not-match-the-expected-package

반응형