Шрифт «Arial» не доступен для JVM

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

Мой проект использует:

JBoss 4.2.3.GAJava 1.6Jasperreports 4.7.0

Исключение:

net.sf.jasperreports.engine.util.JRFontNotFoundException: Font 'Arial' is not available to the JVM. See the Javadoc for more details.

Я нашел общее решение, чтобы решить эту проблему, и я действительно работает:

sudo apt-get install msttcorefonts

Однако я хочу понять, как Jasper работает со шрифтами и как он ищет эти шрифты, установленные в средах Unix. Может быть, лучший вопрос: как JVM обрабатывает родные шрифты? Кто-нибудь может дать мне подробное объяснение на эту тему? Как системные шрифты становятся доступными для JVM во время выполнения?

 Alex K14 сент. 2012 г., 15:44
Что вы имеете в виду?
 gdfbarbosa14 сент. 2012 г., 15:48
Я нашел эту ссылку интересной, объясняющей, как JVM работает со шрифтами:docs.oracle.com/javase/6/docs/technotes/guides/intl/font.html, Я думаю, что это информация, которую я искал.
 Alex K14 сент. 2012 г., 15:33
Вы должны прочитать оРасширения шрифтов механизм. Вы также можете найти более подробную информацию вРуководство по JasperReports Ultimate, Для лучшего понимания вы можете изучить исходные файлыДвигатель JR
 Gustavo04 дек. 2015 г., 15:40
@barbosa Вы используете расширения шрифта JasperReports?
 Gustavo04 дек. 2015 г., 15:38
@AlexK У меня та же проблема с OP, и я использую расширения шрифтов JasperReports, поэтому мои файлы шрифтов находятся в банке внутри моего приложения. Я нене понимаю, почему JVM не можетне могу их найти. Во многих публикациях люди предлагают установить шрифт в ОС, но это нарушит назначение расширений шрифтов.
 gdfbarbosa14 сент. 2012 г., 15:43
Есть ли источник для этого в JVM документах?

Ответы на вопрос(5)

Я также столкнулся с той же проблемой на Jasper 5.0. Я следовал за шагами ниже:

Поместите;jasper-fonts.jarУстановите недостающие шрифты в Linux;Перезапустите сервер JBoss.
 Gustavo04 дек. 2015 г., 15:44
Это сработало? Откуда взялся jasper-fonts.jar?
Решение Вопроса

Java просит ОС предоставить шрифты. Как это работает, зависит от ОС.

http://en.wikipedia.org/wiki/Arial утверждает, что установлен на MS-Windows и MAC OSX

Обновление за 2015 год:

Добавьте это (или раскомментируйте в) /etc/apt/sources.list

deb http://us.archive.ubuntu.com/ubuntu/ trusty multiverse
deb-src http://us.archive.ubuntu.com/ubuntu/ trusty multiverse
deb http://us.archive.ubuntu.com/ubuntu/ trusty-updates multiverse
deb-src http://us.archive.ubuntu.com/ubuntu/ trusty-updates multiverse

Затем запустите это:

sudo apt-get update
sudo apt-get install msttcorefonts

для OpenSuse

проверить шрифты недоступно в SO fc-list | grep "Arial»

установите следующие rpm sudo rpm -ivh msttcore-fonts-2.0-3.noarch.rpm

или скачать со страницы:

http://www.mjmwired.net/resources/mjm-fedora-f11.html#ttf

Установите обороты

проверить еще раз fc-list | grep "Arial»

Перезагрузите сервер приложений

Если вы нене хотите проходить через загрузку фляг, а что нет, просто зайдите в софт-центр и нажмите «установить»Ubuntu ограниченные дополнения, Этот пакет установит не только MS Fonts, но и другие приложения для приложений с ограниченным авторским правом.

Это работает для Ubuntu Systems.

Ваш ответ на вопрос