Подтвердить что ты не робот

В чем смысл профиля (compact1, compact2, compact 3) в документации по API Java?

Недавно я узнал, что для некоторых классов есть комментарии типа compact1, compact2, compact3, в документации по API Java 8.

Кажется, что это называется profile, как вы можете видеть на странице обзора. (См. Изображения ниже). Профиль, compact1, compact2, compact3 не отображаются в документации по Java 6 или 7 API.

Что они означают в Java 8 API doc?

enter image description here

enter image description here

4b9b3361

Ответ 1

Компактные профили - это подмножества полных API-интерфейсов платформы Java, позволяющие работать с меньшим количеством JRE. Многим программам (особенно во встроенных средах) не нужны библиотеки, такие как Swing или CORBA - они просто теряют пространство. Из отчета Oracle Java SE Embedded 8 Компактные профили:

Компактный профиль является подмножеством полного API платформы Java SE. Поскольку они имеют меньший размер памяти, компактные профили могут позволить многим приложениям Java работать на устройствах с ограниченными ресурсами. Выбор компактного профиля, который точно соответствует функциональности приложения, сводит к минимуму хранилище, посвященное неиспользуемым функциям. В Java SE Embedded 8 есть новые встроенные инструменты для разработчиков, включая jrecreate и jdeps, которые позволяют разработчику настраивать среду выполнения Compact Profile для платформы и находить зависимости Compact Profile для анализа во время разработки платформы.

Компактные профили выбирают только API; они не связаны с виртуальной машиной Java, собственно языком или инструментами. Поэтому необходимо проявлять осторожность, чтобы соответствовать функциональности поддерживаемой виртуальной машины Java с необходимой поддержкой API.

Эта страница также отображает содержимое каждого профиля. В настоящее время определенные профили имеют отношение подмножества (compact2 включает compact1, compact 3 включает compact2).

Используйте параметр -profile для javac для компиляции с профилем. javac будет жаловаться, если источник использует API, недоступный в профиле, как в этом примере из javac doc:

./javac -profile compact1 Paint.java
Paint.java:5: error: Applet is not available in profile 'compact1'
import java.applet.Applet;