В моих старых проектах используется Java 6 (1.6), и я не знаю, когда я обновляю (Java 7), они могут нормально работать?
Старые проекты, совместимые с Java 7
Ответ 1
Существует официальный официальный список известных несовместимостей между java 6 и java 7 от Oracle (включая описания как несовместимости двоичного, так и исходного уровня в общедоступных API-интерфейсах).
Также вы можете посмотреть независимый анализ изменений API в проекте Java API Tracker: http://abi-laboratory.pro/java/tracker/timeline/jre/
Отчет создается инструментом japi-compliance-checker.
Ответ 2
Они должны делать, да. Java имеет достаточно сильную историю обратной совместимости. Однако, если это какие-то важные проекты, вы все равно должны выполнить тщательный тест, прежде чем развертывать в любом месте, например, для производства.
Ответ 3
Не должно быть никаких различий в совместимости, поскольку JVM в основном одинакова. Однако это ранние дни, поэтому могут быть тонкие различия, которые вызывают проблему, о которой люди еще не знают.
например. Eclipse смотрит на Поставщика в java.exe на Windows и устанавливает аргументы командной строки по-разному для разных поставщиков. У этого есть проблема с обновлением Java 6 22, потому что Oracle хотел изменить его с "Солнца" на "Oracle". Я считаю, что это было изменено, так что это "Oracle" в Java 7 (но все же "Sun" для Java 6)
Моя точка зрения заключается в том, что если вы пишете общий код Java, у вас не должно быть проблем. Однако, если вы делаете что-то необычное, вам, скорее всего, потребуется повторная проверка вашего приложения.
Ответ 4
Как уже говорилось, обратная совместимость является очень важным аспектом в новых выпусках Java, поэтому в целом не должно возникать проблем при переключении на более новую версию Java. В этом случае, однако, Java 7, похоже, содержит несколько ошибок в новых оптимизаторах компилятора hotspot. Apache Software Foundation выпустил предупреждение о том, что эти продукты Lucene и Solr подвержены этим ошибкам.
Оптимизация затронутых циклов может быть отключена путем запуска java с помощью -XX:-UseLoopPredicate
.
Ответ 5
AFAIS здесь, там нет функций Java 6, которые устаревают в Java 7, поэтому да, ваш проект должен работать нормально.