openjdk.ruOpenJDK на русском

JEP 313: Remove the Native-Header Generation Tool (javah)

Удаление инструмента генерации нативных заголовочных файлов (javah)

ОтветственныйJonathan Gibbons
ТипFeature
ОбластьJDK
СтатусClosed / Delivered
Выпуск10
Компонентtools / javah
Обсуждениеcompiler dash dev at openjdk dot java dot net
ТрудоёмкостьXS
РецензентыBrian Goetz, Joe Darcy
ОдобренBrian Goetz
Создан2017/06/23 17:28
Обновлён2018/01/10 22:02
Задача8182758

Аннотация

Удалить из JDK инструмент javah.

Мотивация

Этот инструмент заменён более совершенной функциональностью javac, добавленной в JDK 8 (JDK-7150368). Эта функциональность позволяет записывать нативные заголовочные файлы во время компиляции исходного кода на Java, поэтому отдельный инструмент больше не нужен.

Если сосредоточиться на поддержке, которую даёт javac, не придётся дорабатывать javah для поддержки новых подходов, например доступа через Compiler API в javax.tools.* или нового SPI java.util.spi.ToolProvider, добавленного в JDK 9.

Описание

Удаление включает удаление затронутых файлов, в том числе файлов документации, из репозиториев Mercurial, а также сопутствующие изменения в make-файлах.

Тестирование

Тестирование будет ограничено проверкой того, что команды javah нет.

Риски и допущения

Удаление javah из JDK не создаёт технических проблем, поскольку этот инструмент больше не используется ни самим JDK, ни при сборке JDK.

Пользователи предупреждены о предстоящем удалении начиная с JDK 9: в этом выпуске при каждом вызове инструмента javah выводится предупреждение.

Зависимости

В JDK нет прямых зависимостей от инструмента javah. Вне JDK существуют производные от javah, например задача javah в Ant, но так же, как пользователям команды javah рекомендуется использовать javac -h, пользователям этих зависимостей рекомендуется вместо них использовать соответствующую поддержку в javac.