이클립스:선언된 패키지가 예상된 패키지와 일치하지 않습니다.
외부 프로젝트를 가져오는 데 문제가 있습니다.파일로 이동 -> 가져오기...-> 기존 프로젝트를 작업영역으로, 프로젝트가 위치하고 모든 항목을 가져온 폴더를 선택하십시오. 그러나 프로젝트의 패키지 이름은 이클립스가 기대하는 것과 같지 않습니다.패키지 이름에는 모두 접두사가 있습니다.
prefix.packagename1
prefix.packagename2
기타.
하지만 이클립스는 기대합니다.
src.prefix1.prefix.packagename1
src.prefix1.prefix.packagename2
디렉토리가 src/src1/slot1/package1이기 때문에 등입니다.
저는 외부 코드를 가지고 장난치고 싶지 않습니다.이클립스에게 "src/prefix1" 디렉토리를 무시하라고 어떻게 말합니까?아니면 제가 뭘 더 할 수 있을까요?
를 드빌로경 로 들 경 변 만 하 됩 기 니 면 다 하 경 를 로 소 스 어 가 서 ▁be ▁the ▁to ▁just 다 됩 니 ▁and ▁go ▁path 하 ▁change ▁source ▁path ▁build ▁the 면 ▁intosrc/prefix1
에 src
.
마우스 오른쪽 단추를 클릭하는 것이 가장 쉬울 수 있습니다.src
에서 " / from path"를 선택한 후 " " " " " / " " 를 .src/prefix1
디렉토리를 마우스 오른쪽 단추로 클릭하고 "빌드 경로 / 원본 폴더로 사용"을 선택합니다.
저는 방금 이 문제에 부딪혔고, 스키트 씨의 해결책이 저에게 효과가 없었기 때문에, 제가 어떻게 이 문제를 해결했는지 공유하겠습니다.
알고 보니 자바 파일을 소스 디렉터리로 선언하기 전에 'src' 아래에서 열었던 것 같습니다.
eclipse에서 'src' 디렉터리를 마우스 오른쪽 버튼으로 클릭한 후 '빌드 경로'를 선택한 다음 '소스 폴더로 사용'
이미 열려 있는 Java 파일을 닫았다가 다시 엽니다(F5 새로 고침이 작동하지 않음).
"prefix1"부터 파일의 패키지와 줄을 잇는 Java 파일의 경로를 제공합니다(예: 요청자의 질문 prefix1.prefix.packagename2).이것은 효과가 있을 것입니다.
이클립스는 더 이상 'src'에 대해 불평해서는 안 됩니다.
문제 *.java 파일을 다른 폴더로 이동합니다.
'src' 항목을 클릭하고 "F5"를 누릅니다.
붉은 십자가는 사라집니다.
*.java 파일을 "패키지 경로"로 되돌리고 'src' 항목을 클릭한 다음 "F5"를 누릅니다.
모든 것이 괜찮을 것 같아요.
기존 프로젝트를 가져온 경우 원본 폴더를 제거한 다음 빌드 경로에 다시 추가하고 이클립스를 다시 시작합니다.대부분의 경우 다시 시작할 때까지 이 오류가 계속 표시됩니다.
프로젝트를 삭제한 다음 다시 가져오는 것이 유일하게 제게 효과가 있었습니다.매력적으로 작동합니다 :)
실패한 빌드가 IDE 외부에서 실행된 후 발생합니다.작업영역 정리가 작동하지 않으면 시도: 1) 모든 프로젝트 삭제 2) STS/이클립스 닫기 및 다시 시작, 3) 프로젝트 다시 가져오기
.classpath 파일이 없는 Android 프로젝트를 가져올 때 Eclipse에서 이 문제가 발생할 수 있습니다.이클립스가 만든 것은 안드로이드가 기대하는 것과 완전히 다릅니다.그러나 Android .classpath 파일은 대개 모두 상대적이므로 잘못된 .classpath를 통해 올바른 .classpath 파일을 다른 프로젝트에서 복사합니다.어떻게 하는지 보여주는 비디오를 만들었습니다. https://www.youtube.com/watch?v=IVIhgeahS1Ynto
에 프젝트다같패은있가다정합다니고가키지음로에과와 같은 패키지가 있다고 .package name1.name2.name3.name4
(package) (package)
탐색기에 됩니다.
는 name1.name2입니다.
.name4라는 이름의
Eclipse는 가져온 지점부터 시작하여 디스크의 파일 디렉터리 구조에서 패키지 이름을 추출하기 때문에 오류가 발생합니다.
제 사례는 작업 공간 외부의 폴더에 대한 심볼릭 링크를 사용했기 때문인지 좀 더 관련이 있었습니다.
처음에 경로 빌드를 시도했습니다.Java 빌드 경로입니다.원본 탭.원본 연결 단추입니다.패키지에서 name1 앞에 있는 폴더를 찾습니다.원하는 폴더 이름입니다(제 생각에는).하지만 문제가 있었습니다.
그런 다음 빌드 경로에서 폴더를 제거하고 파일 > 가져오기...를 시도했습니다.> General > File System > Next > From Directory > Browse...를 클릭합니다.이름1 위의 폴더로 > 고급 단추 > 작업영역에 링크 만들기 > 마침 단추를 누릅니다.
프로젝트의 src 폴더로 이동하여 프로젝트의 모든 코드를 임시 위치로 복사하고 프로젝트를 빌드합니다.그리고 이제 임시 위치에서 프로젝트 src로 실제 코드를 복사합니다.빌드를 다시 실행합니다.문제가 해결됩니다.
참고: 이는 일식에만 해당됩니다.
저도 방금 같은 문제가 있었습니다.하지만, 처음 몇 가지 대답은 저에게 효과가 없습니다.해결책을 제안합니다: .classpath 파일을 변경합니다.예를 들어 path="src/slot1/slot1" 또는 path="src/slot1/slot1/slot1/slot1"과 같은 클래스 경로를 정의할 수 있습니다.도움이 되길 바랍니다.
기존 프로젝트를 메이븐으로 변환하고 문서에 따라 폴더 구조를 만들고 패키지의 일부로 '메인' 폴더를 표시하는 것이 문제였습니다.Jon Skeet / JWoodchuck과 유사한 지침에 따라 Java 빌드 경로로 들어가 모든 손상된 빌드 경로를 제거한 다음 'src/main/java' 및 'src/test/java'로 빌드 경로를 추가하고 각 리소스 폴더를 추가하여 문제를 해결했습니다.
빌드 경로에는 패키지 이름의 '이전까지' 경로가 포함되어야 합니다.
예를 들어, 폴더 구조가 다음과 같은 경우:src/main/java/com/example/dao
가져오기 문이 포함된 클래스인 경우'package com.example.dao'
잘못된 패키지 오류에 대해 불만을 제기한 경우, 빌드 경로는include:src/main/java
이렇게 하면 문제가 해결될 것입니다.
- 패키지가 있는 외부 폴더를 마우스 오른쪽 버튼으로 클릭합니다.
src.prefix1.prefix.packagename1 src.prefix1.prefix.packagename2
빌드 경로 --> 빌드 경로에서 제거를 누릅니다.
이제 프로젝트의 폴더 섹션에 있는 폴더 접두사1로 이동합니다.
마우스 오른쪽 버튼으로 클릭 --> 빌드 경로 --> 소스 폴더로 사용합니다.
완료했습니다. 이제 패키지 폴더에 오류가 표시되지 않습니다.그래도 표시되면 프로젝트를 다시 시작합니다.
언급URL : https://stackoverflow.com/questions/7628686/eclipse-the-declared-package-does-not-match-the-expected-package
'programing' 카테고리의 다른 글
iOS 10: "[앱] 만약 우리가 실제 사전 커밋 핸들러에 있다면 CA 제한으로 인해 실제로 새로운 펜스를 추가할 수 없습니다." (0) | 2023.05.05 |
---|---|
마지막 셀에서만 작동하는 EP Plus 자동 필터 (0) | 2023.05.05 |
웹 응용 프로그램에 대한 IIS7 폴더 사용 권한 (0) | 2023.05.05 |
mongodb에서 최소값을 찾는 방법 (0) | 2023.05.05 |
개인 저장소 복제(Github) (0) | 2023.05.05 |