2012-05-19 4 views

ответ

4

Могу ли я использовать JDK 1.7 для компиляции кода, написанного в JDK 1.6?

Да.

Является ли Java строгим нисходящим совместимым?

Если при компиляции указаны cross-compilation options. Это прежде всего:

  • -source
  • -target
  • -bootclasspath - который требует rt.jar из JRE (не JDK) мишенью
1

Да, у java есть обратная совместимость.

С последним JDK вы прийти, но вы можете держать две JDKs без проблем

2

Могу ли я использовать JDK 1.7 для компиляции кода writtern в JDK 1.6?

Да, вы можете.

Должен ли я поддерживать JDK 1.6 и JDK 1.7 вместе в одной машине?

Вы можете установить их как на одной машине. Нужно ли вам зависит от того, что именно вы пытаетесь сделать.

+4

Java 7 делает предупредит вас, если вы компилируете с '-target 1.6', если вы не указали bootclasspath, указывающий на Java 6: он не может проверить, используете ли вы классы, введенные (или измененные) в Java 7, если вы компилируете с помощью Java 7 libs. –

+2

@Mark * «Java 7 предупреждает .. если не указывать bootclasspath» * Это одна из лучших вещей о 7 JDK (или, по крайней мере, javac) и очень просроченной IMO. –