Nem todas as fontes TTF são visíveis no JDK (Sun)

6

Eu queria usar o Monaco.ttf com o IntelliJ. Infelizmente isso não aparece.

Eu também notei que a fonte do Monaco não aparece na lista de fontes tiradas do awt:

java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames()

Eu instalei o Monaco.ttf em / usr / share / fonts / truetype / osx

Eu também tentei copiá-lo em /usr/lib/jvm/java-6-sun/jre/lib/fonts e até tentei atualizar manualmente o arquivo /usr/lib/jvm/java-6-sun/jre/lib/fonts/fonts.dir

Eu reiniciei o jvm em cada tentativa, mas as fontes não são visíveis a partir do jdk do sol.

Todos os outros aplicativos veem essa fonte (mesmo eclipse, que está em java, mas usa a biblioteca SWT)

Alguém sabe como fazer o jdk ver fontes adicionais?

    
por ithkuil 20.01.2011 / 18:20

4 respostas

4

O problema é com a própria fonte do Monaco, ela não parece ter metadados apropriados e é uma porta hacky, então o Java não a reconhece. Provavelmente você pode encontrar alguma outra versão deste arquivo TTF que funcionará melhor ou tente consertá-lo usando o FontForge.

Veja também meu comentário no rastreador de problemas do IntelliJ IDEA.

    
por CrazyCoder 20.01.2011 / 21:12
3

Você precisa executar os utilitários mkfontscale e mkfontdir , nesta ordem, para atualizar o arquivo fonts.dir.

Insira o diretório /usr/lib/jvm/java-6-sun/jre/lib/fonts do seu terminal e execute

sudo mkfontscale
sudo mkfontdir

mkfontscale cria o arquivo fonts.scale que mkfontdir pode usar para criar fonts.dir .

    
por user4124 20.01.2011 / 18:37
1

Atualize seu cache de fontes

sudo fc-cache -f -v
    
por wojox 20.01.2011 / 20:04
0

Já tentou ligar:

java.awt.GraphicsEnvironment.getAllFonts()

Parece que o sistema de fontes Java está meio bagunçado:

link

Talvez seja necessário solucionar problemas para encontrar as fontes. Mas se eclipse pode ver a fonte, então não há razão para que seu aplicativo não possa. Você pode até escolher ver o código do eclipse para ver como eles o fizeram.

link

    
por Martin Owens -doctormo- 20.01.2011 / 18:30

Tags