Я поддерживаю Java-приложение, которое я всегда скомпилировал с использованием JDK 1.6, прежде чем распространять его, поскольку это минимальная версия, которую требует мое приложение. Я не использую никаких новых функций. Я не вижу смысла компилировать его в более поздней версии, или более старые JRE не смогут запускать его (то есть пользователей на Mac OSX, которые используют Java 1.6).
Теперь, когда в новостях недавно появилась информация о безопасности в отношении Java и исправлениях ошибок в более поздних версиях JDK, лучше ли перекрестно скомпилировать ее, используя последний JDK, доступный с использованием следующего синтаксиса:
javac -Xlint -source 1.6 -target 1.6 -bootclasspath jre6/lib/rt.jar MyClass.java
Это создает файл класса, который отлично работает в JRE 1.6, но есть ли преимущества в использовании JDK 1.6 в первую очередь? Использую ли я какие-либо оптимизации в новых JDK или создаю идентичный байт-код?