Старые проекты, совместимые с Java 7 - PullRequest
11 голосов
/ 29 июля 2011

Мои старые проекты используют Java 6 (1.6), и я не знаю, когда я обновляюсь (Java 7), они могут нормально работать?

Ответы [ 5 ]

12 голосов
/ 04 декабря 2011

Существует официальный список известных несовместимостей между java 6 и java 7 от Oracle (включая описания как двоичной, так и несовместимости на уровне источника в публичных API).

Также вы можете посмотреть независимый анализ изменений API в проекте Java API Tracker: http://abi -laboratory.pro / java / tracker / timeline / jre /

Отчет генерируется инструментом japi-Compliance Checker .

enter image description here

3 голосов
/ 29 июля 2011

Они должны сделать, да.У Java достаточно сильная история обратной совместимости.Однако, если это в любом случае важные проекты, вы все равно должны выполнить тщательный тестовый тест перед развертыванием в любом месте, подобном производственному.

1 голос
/ 30 июля 2011

Как уже говорилось, обратная совместимость является очень важным аспектом в новых выпусках Java, поэтому в общем случае не должно быть проблем при переходе на более новую версию Java.В этом случае, однако, в Java 7, похоже, есть несколько ошибок в оптимизации нового компилятора горячей точки.Apache Software Foundation выпустил предупреждение о том, что эти ошибки затрагивают их продукты Lucene и Solr.

http://lucene.apache.org/#28+July+2011+-+WARNING%3A+Index+corruption+and+crashes+in+Apache+Lucene+Core+%2F+Apache+Solr+with+Java+7

Оптимизированные циклы можно отключить, запустив java с -XX:-UseLoopPredicate.

1 голос
/ 29 июля 2011

Не должно быть никаких различий в совместимости, поскольку JVM в основном одинакова. Однако это первые дни, поэтому могут быть тонкие различия, которые вызывают проблемы, о которых люди еще не знают.

например. Eclipse смотрит на поставщика в файле java.exe в Windows и по-разному устанавливает аргументы командной строки для разных поставщиков. У него есть проблема с обновлением 22 для Java 6, потому что Oracle хотел изменить его с "Sun" на "Oracle". Я считаю, что это было изменено, поэтому это «Oracle» в Java 7 (но все еще «Sun» для Java 6)

Я хочу сказать, что если вы пишете общий Java-код, у вас не должно быть проблем. Однако, если вы делаете что-то немного необычное, вам, вероятно, придется повторно протестировать ваше приложение.

0 голосов
/ 29 июля 2011

AFAIS здесь , в Java 7 нет функций Java 6, которые устарели, так что да, ваш проект должен работать нормально.

...