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.