Я не знаю об одном кратком документе, но:
Если ваши ttf-файлы не находятся в архиве, вы можете вызвать createFont (File) вместо createFont (InputStream)
Насколько мне известно, эта ошибка существует в Java 6 , достаточно посмотреть исходники класса Font.
С JDK1.6.0_16 диспетчер шрифтов, похоже, использует временный файл как своего рода кеш и будет читать глифы из шрифта только тогда, когда они требуются. Он также добавляет ловушку выключения, которая удалит файл при обычном завершении работы JVM. В зависимости от виртуальной машины рендеринг шрифтов, возможно, также делегируется машинному коду, которому необходим доступ к файлу, поэтому сохранение блокировки файла кажется мне разумным.
Сохраняются ли файлы на самом деле, даже если ваш контейнер сервлета (вы упоминание веб-приложения) завершается регулярно, или вы убиваете его, не позволяя ему правильно очистить свои ресурсы?