2009-12-14 5 views
0

1.4 컴파일러 준수 레벨로 구성된 Java 프로젝트가 시스템이 1.6 JRE로 재생되는 1.5/1.6 특정 API 사용을 제한하는 방법이 있습니까?Java 1.4 프로젝트가 1.5/1.6 특정 API를 사용하지 못하게하려면 어떻게합니까?

내 프로젝트에서 1.4 컴파일러 준수 레벨 만 설정해도 특히 1.5/1.6 특정 java.lang.String 메쏘드 사용을 경고하지 않습니다. 내가 가장 안전한 (그리고 아마도 가장 간단한) 방법을 제안

답변

2

에 JDK 1.4를 사용하여 컴파일이며, JRE 1.6를 사용하여 실행.

-1

Eclipse의 설정에서 사용하지 않으려는 JDK/JRE를 제거하는 것입니다. 귀하의 경우 1.5와 1.6이 될 것입니다.

이렇게하려면 Windows-> 환경 설정으로 이동 한 다음 왼쪽 상단에 "JRE"를 입력하십시오.

Eclipse에서 JRE Eclipse가 시작되었는지 확인하고 eclipse.ini를 편집 할 수도 있습니다.

6

또한 프로젝트에서 1.4 JRE 시스템 라이브러리를 사용하고 있는지 확인하십시오. 1.4 컴파일러 설정은 클래스 파일에 기록 될 기능을 변경하며 프로젝트의 라이브러리에서 볼 수있는 것을 제한하지 않습니다.

프로젝트 속성을 열고 "Java 빌드 경로"-> "라이브러리"-> "JRE 시스템 라이브러리"에서 찾을 항목을 확인하십시오. 새 Java 버전을 변경하거나 추가하려면 "편집"을 클릭하십시오.

+0

1.4 프로젝트 1.4에 포함 된 JRE 1.6 시스템 라이브러리와 함께 1.5/1.6 API를 사용하여 오류/경고를 던지도록 컴파일러를 지시 할 방법이 없습니다 classpath? – raatprohory

+0

물론 아닙니다. 컴파일러의 관점에서, rt.jar는 classpath에있는 다른 JAR이다. 거기에있는 수업이 당신에게 특별한 것을 의미한다는 것을 "알지 못합니다". –

1

(예 : 1.4 JRE를 설치하여) 1.4 JRE에서 rt.jar이 필요합니다. javac을 사용하여 다음과 같은 옵션을 사용하는 경우는 반드시 완전히 "버그 호환"되지 않을 수 있지만, JRE는 오래된 소스 적은 버그를 가지고 있어야한다는 것을 의미 나중에에서 javac를 사용

javac -source 1.4 -target 1.4 -bootclasspath /path/to/j2se1.4/lib/rt.jar [...] 

합니다.

또한 -Djava.ext.dirs=directories-Djava.endorsed.dirs을 사용하고 싶을 수도 있지만 일반적으로 디렉토리에 항목을 넣는 것은 좋지 않습니다.

참고 : 1.5조차도 서비스 수명 만료 기간이 끝났습니다. 1.6과 함께하십시오! (또는 우리의 우수한 Java for Business 계약 중 하나를 구입하십시오.)

관련 문제