선언된 패키지가 예상 패키지 ""와 일치하지 않습니다.
저는 이클립스를 사용하고 있고 자바도 한동안 사용하지 않았습니다. 해, 한 「코드의 작성」을 할 수 ..class
에서는, 「 that립,,, that」, 「립스에에에 files files files files files」, 「 files files files files files files files」라고 하고 있습니다.The declared package "Devices" does not match the expected package ""
이것은 무엇을 의미하며 어떻게 수정해야 합니까?
샘플 코드:
package Devices;
public final class DevFrequency
{
public short messageID;
public double frequency;
public short converterID;
public DevFrequency()
{
}
public DevFrequency(short _messageID,double _frequency,short _converterID)
{
messageID = _messageID;
frequency = _frequency;
converterID = _converterID;
}
}
은 제제제 the the the the입니다.DeviceDDS
.
파일을 닫았다가 다시 열어 보십시오.
파일 위치 또는 패키지 선언에 전혀 문제가 없는 경우 이 오류가 발생할 수 있습니다.이러한 다른 솔루션을 시도하기 전에 많은 시간을 들여 시도해 보십시오.가끔 일식은 그냥 헷갈려.여러 번 효과가 있었어요.나는 조슈아 골드버그의 아이디어를 믿는다.
Eclipse는 선언된 패키지가 디렉토리 계층과 일치할 것으로 예상하므로 Java 파일이 소스 루트 아래의 "Devices" 디렉토리에 있어야 합니다.현재로서는 파일이 소스 루트에 직접 있는 것처럼 보입니다.따라서 적절한 디렉토리를 만들고 그 안으로 파일을 이동합니다.
일반적으로 패키지는 소문자로 표시되며 DNS 역순으로 조직명을 포함합니다.
com.foo.devices;
솔루션 1 : 이클립스 CVS에서 체크아웃한 프로젝트에서 "The declared package doespected package match the expected package"라는 오류가 발생했을 때 나에게 효과가 있었던 솔루션이 하나 있습니다.
1.하고 '1을 탐색 모음에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 '삭제'를 클릭합니다.
2. 'Delete project contents on disk' 옵션이 선택되어 있지 않은지 확인하고 OK를 클릭합니다.
3. 프로젝트 삭제 후 [파일]-> [가져오기]-> [일반]-> [기존 프로젝트]를 워크스페이스로 이동합니다.
4. 디렉토리 목록에서 워크스페이스를 선택하고 프로젝트 이름 옆에 있는 상자를 선택합니다.'완료'를 클릭합니다.
해결책 2: 다시 한 번 다음 메시지와 함께 이 오류가 발생하였습니다.
이클립스 빌드 오류 - java.lang.오브젝트를 해결할 수 없습니다.여기서 언급한 다른 루트를 따라야 했기 때문에 오류가 사라졌습니다.
한편, JRE 시스템 라이브러리를 프로젝트에서 삭제한 후 다시 추가하는 것이 회피책입니다.스텝은 다음과 같습니다.
- 빌드 오류가 있는 프로젝트의 속성으로 이동합니다(우클릭 > 속성). "빌드 경로" 섹션의 "라이브러리" 탭을 표시합니다.목록에서 "JRE 시스템 라이브러리"를 찾습니다(이 오류가 누락된 경우 이 오류 메시지는 이클립스 버그가 아니라 잘못 구성된 프로젝트입니다).
- "JRE 시스템 라이브러리"를 제거합니다.
- [ Add Library ... ](라이브러리 추가...)를 누르고 [JRE System Library](JRE 시스템 라이브러리)를 선택하여 프로젝트에 적합한 JRE(예: 'Workspace default JRE')를 추가합니다.
- 라이브러리 선택 항목에서 "완료"를 누르고 프로젝트 속성에서 "확인"을 누른 후 프로젝트 재구축을 기다립니다.
오류가 해결되기를 바랍니다.
다음의 순서에 따라서 문제를 해결했습니다.
[프로젝트] - [우클릭] - [Java 빌드 경로]를 선택합니다.
[)]탭에서 [소스(Source)]- [소스(Source)]를합니다.탭에서
src
로로 합니다.src/main/java
.이클립스가 모든 프로젝트를 재정렬할 것이다.
이 문제가 있었습니다.패키지 내의 다른 클래스는 괜찮았지만, 한 클래스는 이에 대한 에러가 있었습니다.패키지 신고에는 이상이 없었습니다.
건 ㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎ.refactor->move
를 일시적으로 후, 「클래스를 다른 패키지로 옮깁니다.」refactor->move
원래 패키지로 되돌립니다.
이름만 소문자로 바꾸면 이클립스가 패키지를 인식합니다.
.Devices
.
프로젝트 아래에 "Devices"라는 새 패키지를 만들고 클래스를 배치합니다.이는 클래스가 프로젝트 원본 폴더의 "Devices"라는 디렉터리에 배치되는 것과 동일합니다.
이 문제는 패키지 이름을 언급함으로써 해결되었습니다.
패키지 stepDefinition 아래에 있는 Test_Steps.java 파일을 이동했습니다.
패키지 단계를 추가하는 것만으로 문제가 해결되었습니다.정의
따라서 이 문제는 패키지가 있고 클래스 파일에서 사용하지 않을 때 발생할 수 있습니다.
그것을 추가하면, 문제가 해결되어 에러는 표시되지 않게 되었다.
「 」가 되어 것을 확인합니다.Devices
프로젝트 속성에서 원본 폴더로 정의됩니다.
같은 종류의 오류가 발생했지만, 제 패키지는 완전히 정확했습니다.편집기를 닫고 열었을 때 오류가 사라집니다.이것이 일부 시나리오에서 도움이 되기를 바랍니다.
하려면 , 「제외」의의 「속성을 ..classpath
전체 태그가 아닌 속성을 삭제하지 않으면 "src/java"가 소스 폴더가 되지 않습니다.
<classpathentry excluding="com/myproject/mypackage/mysubpackage/" kind="src" path="src/java"/>
올바른 패키지를 작성했는지 확인합니다.패키지 대신 폴더를 만들 수 있습니다.
프로젝트의 워크스페이스 루트 디렉토리에 [your.project.name]디렉토리를 만듭니다.
*.java를 "src"에서 해당 디렉토리에 복사합니다.
프로젝트를 닫았다가 다시 엽니다.
이 일은 내가 svn 저장소에서 프로젝트를 체크 아웃할 때 일어났다.내 .m2 폴더에 이클립스가 보지 않은 항아리 파일이 있었어문제를 해결하려면:
[ Configure ]> [ Convert to Maven Project ]를 오른쪽 클릭합니다.
그래서 문제가 해결됐어요.
100만 개의 답이 있지만, 여기 또 다른 답이 있습니다.파일을 새 패키지에 복사하고, 오래된 패키지를 삭제하고, 새로운 패키지의 이름을 이전 패키지의 이름으로 변경합니다.
기본 패키지를 사용하고 있지 않은지 확인합니다.이름이 'devices'인 새 패키지를 만들고 그 안에 이 코드를 복사하여 사용합니다.
다른 패키지/프로젝트로부터 클래스를 카피했을 때에, 이러한 정렬이 있었습니다.
메뉴 -> 프로젝트 -> 청소가 보통 도움이 됩니다.
저 같은 경우에는 문제 탭에서 에러 마커를 선택하고 Java의 파일 메인 메서드가 올바르게 실행되고 있었기 때문에 삭제했습니다.이클립스 네온에 설치된 다수의 플러그인으로 인한 결함입니다.
기존 프로젝트를 일식화하기 위해 Import 했을 때도 이 문제에 직면했습니다.그래들 프로젝트였는데 Import할 때 [General]-> [ Existing Projects in Workspace ]를 클릭하여 일반 프로젝트로 Import했습니다.이 문제를 해결하려면 프로젝트 폴더에 Gradle Nature를 우클릭합니다.-> [ Configure ]-> [ Add Gradle Nature ]
Spring Tool Suite 4를 사용하고 있었습니다.문제를 파악할 수 없다.디렉토리 구조는 패키지명에 준거하고 있습니다.
하지만 프로젝트를 청소하는 것이 내게 도움이 되었다.
Eclipse IDE의 maven 프로젝트에서도 같은 문제가 있었습니다..classpath 파일을 올바른 형식으로 대체하여 해결할 수 있었습니다.교체 후 프로젝트를 닫고 여십시오.
샘플 .classpath 파일
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/webapp">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>
프로젝트 속성에서 Java의 '빌드 경로'를 체크하고 싶을 수 있습니다.원래의 디렉토리(패스)가 올바르게 설정되어 있지 않은 경우는, 이 에러가, 거기에 포함되는 모든 클래스에 대해서, 이 에러가 발생합니다.
따라서 경로는 패키지 내의 소스가 존재하는 'root'(포함) 디렉토리를 지정해야 합니다.
언급URL : https://stackoverflow.com/questions/6997524/the-declared-package-does-not-match-the-expected-package
'programing' 카테고리의 다른 글
명령줄 인수를 npm 스크립트로 보내는 중 (0) | 2023.01.29 |
---|---|
Mesos 또는 Core에서 MariaDB 및 Redis의 고가용성 클러스터를 설정하는 방법OS (0) | 2023.01.29 |
Vue 애플리케이션에서 중첩된 작업을 테스트하려면 어떻게 해야 합니까? (0) | 2023.01.29 |
판다와 함께 그룹별 고유값 계산 (0) | 2023.01.29 |
PHP에서 오류 로그 파일에 쓰는 방법 (0) | 2023.01.29 |