1.5 및 1.6을 사용하여 컴파일 된 코드가 1.4 JRE에서 실행됩니까? 1.4 JRE가 지원하는 Java 버전이 확실하지 않았습니다.JRE 1.4는 Java 1.5 및 1.6으로 컴파일 된 클래스를 지원합니까?
해당 코드가 1.5 또는 1.6에서 지원하는 기능을 구현하는 경우 분명히 won't compile ... "후방 컴파일"을 사용하는 risks이 있지만 1.4JRE가로드를 거부하더라도 확실하지는 않습니다 1.5/1.6 컴파일 된 클래스 또는 아닙니다.
업데이트 : 나는 당신이 JRE 1.4에서 1.6 클래스 파일을 실행하면 사용자가 java.lang.UnsupportedClassVersionError
예외가 확인했다.
Naw, 이전 Java 용으로 컴파일하는 가장 좋은 방법은 * 버그 * 및 성능 문제가 있으므로 이전 릴리스를 사용하지 않는 것입니다. 필자가 내 대답에서 공유 한 충고 - 항상 최신을 사용하고 크로스 컴파일에 대한 적절한 조언을 따르십시오 - Peter Von der Ahe, 최근까지 수년간 javac의 기술 책임자였습니다. –
컴파일러에는 버그가 거의 없으므로 실제로 적합하지 않습니다. 또한 -target 스위치를 사용하더라도 1.4가 아닌 1.6에있는 메서드 호출 (예 : string.split())을 포함 할 수 있습니다. -target 스위치를 사용하지 않아도됩니다. 반면에 구형 JDK로 컴파일하면 JDK의 구형 버전이나 최신 버전에 대한 선호도가 떨어지지 않습니다. – AlBlue
javac의 버그가 걱정된다면 언제나 ecj가 있습니다. –