수퍼 클래스 메소드가 아닌 인터페이스 메소드 @Override
를 대체하는 메소드 를 사용하는 기존 프로젝트가 있습니다. 코드에서 이것을 변경할 수는 없지만 Evenpse는 여전히 Maven으로 빌드 할 수 있기 때문에 주석에 대한 불평을 중단하고 싶습니다.
이 오류를 비활성화하려면 어떻게해야합니까?
참고 : 프로젝트 요구 사항으로 인해 Java 1.5 용으로 컴파일해야합니다.
수퍼 클래스 메소드가 아닌 인터페이스 메소드 @Override
를 대체하는 메소드 를 사용하는 기존 프로젝트가 있습니다. 코드에서 이것을 변경할 수는 없지만 Evenpse는 여전히 Maven으로 빌드 할 수 있기 때문에 주석에 대한 불평을 중단하고 싶습니다.
이 오류를 비활성화하려면 어떻게해야합니까?
참고 : 프로젝트 요구 사항으로 인해 Java 1.5 용으로 컴파일해야합니다.
답변:
@Override
인터페이스가 선언 한 메소드를 구현하는 메소드에 주석을 사용하는 것은 Java 6부터 유효합니다. Java 5의 오류입니다.
IDE 프로젝트가 Java 6 JRE를 사용하도록 설정되어 있고 "소스 호환성"이 1.6 이상으로 설정되어 있는지 확인하십시오.
Eclipse는 특정 프로젝트에 대한 이러한 전역 설정을 무시할 수 있으므로 해당 설정도 확인하십시오.
최신 정보:
Java 5의 오류는 Eclipse에서만 발생하는 것이 아닙니다. javac
명령 행에서 직접 사용 하면 동일한 오류가 발생합니다. 유효한 Java 5 소스 코드가 아닙니다.
그러나 -target 1.5
JDK 6 옵션을 지정할 수 있습니다 javac
. 그러면 Java 6 소스 코드에서 Java 5 버전 클래스 파일이 생성됩니다.
다음과 같이하십시오 :
프로젝트-> 속성-> Java 컴파일러->
프로젝트에 패싯이 있는지 확인하십시오. Java 버전이 대체 될 수 있습니다.
프로젝트 별 설정이 활성화 될 수 있습니다. 프로젝트 선택 Project > Properties > Java Compiler
, 또는 변경 하고 위의 해당 잊고하지 .
그렇지 않은 작업을 수행 못했을 경우에 대비, 삭제, 이클립스에서 프로젝트를 제거 , , 파일을. 일식. 그것은 나를 위해 일했다uncheck
Enable project specific settings
Jdk 1.6
JRE
.settings folders
.project
.classpath
clean and build the project, import it back into eclipse and then reset your Java compiler. Clean and build your project
컴파일러 설정을 변경하여 Java 6 구문을 허용하지만 Java 5 출력을 생성 할 수 있습니다 (기억하십시오). 런타임에 필요한 경우 "생성 된 클래스 파일 호환성"을 약간 낮게 설정하십시오. 업데이트 : Eclipse를 확인했지만 소스 호환성을 1.6으로, 클래스 호환성을 1.5로 설정하면 불평합니다. 1.6이 허용되지 않으면 일반적으로 소스에서 문제가되는 @Override 주석을 수동으로 주석 처리합니다 (귀하의 경우에는 도움이되지 않음).
업데이트 2 : 수동 빌드 만하는 경우 원래 프로젝트를 새 프로젝트로 복사하고 Java 소스에서 @Override 주석을 제거하고 Eclipse에서 프로젝트 정리를 누르는 작은 프로그램을 작성할 수 있습니다.
Retroweaver를 사용하여 Java6 클래스에서 Java5 버전을 작성할 수도 있습니다.
Eclipse를 사용하여 "@Override"의 모든 인스턴스를 검색하고 바꾸십시오 (제거). 그런 다음 "클린업"을 사용하여 비 인터페이스 재정의를 다시 추가하십시오.
단계 :