Я хотел использовать Monaco.ttf с IntelliJ. К сожалению, это не обнаруживается.
Я также заметил, что шрифт Монако не появляется в списке шрифтов, полученных от awt:
java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames()
Я установил Monaco.ttf в/usr/share/fonts/truetype/osx
Я также пытался скопировать его в /usr/lib/jvm/java-6-sun/jre/lib/fonts
и даже попробованный для ручного обновления /usr/lib/jvm/java-6-sun/jre/lib/fonts/fonts.dir
файл
Я перезапустил jvm при каждой попытке, но шрифты не видимы от солнца jdk.
Все другие приложения видят, что шрифт (даже затмение, которое находится в Java, но пользуется библиотекой SWT),
Кто-либо знает, как заставить jdk видеть дополнительные шрифты?
Проблема в самом шрифте Монако, он, кажется, не имеет соответствующих метаданных и является хакки-портом, поэтому Java его не распознает. Вероятно, вы можете найти какую-нибудь другую версию этого TTF файла, которая будет работать лучше, или попытаться исправить это самостоятельно, используя FontForge.
См. также мой комментарий в трекере проблем IntelliJ IDEA.
Чтобы обновить файл fonts.dir, необходимо запустить утилиты mkfontscale
и mkfontdir
в таком порядке.
Введите каталог /usr/lib/jvm/java-6-sun/jre/lib/fonts
со своего терминала и запустите
sudo mkfontscale
sudo mkfontdir
mkfontscale
, чтобы создать шрифты.масштабировать файл, который mkfontdir
может использовать для создания fonts.dir
.
Попробуйте позвонить:
java.awt.GraphicsEnvironment.getAllFonts()
Похоже, что система шрифтов Java немного запуталась:
http://www.sabi.co.uk/Notes/linuxFonts.html#fontSwJava
Возможно, вам придется поработать над проблемами поиска шрифтов. Но если затмение может видеть шрифт, то нет причин, по которым ваше приложение не может этого сделать. Вы даже можете посмотреть на код эклипса, чтобы увидеть, как они это сделали.
http://java.sun.com/products/java-media/2D/reference/faqs/#Font_and_Text_questions