Where are fonts defined/installed for Openjdk Java on linux

拥有回忆 提交于 2019-12-24 09:24:13

问题


Installed Oracle 8 jdk on Ubuntu, within jre/lib it has various fontProperties files plus a fonts dir containing fonts. But when installed OpenJdk 8 there is no such fonts folder on font files within jre/lib.

So where does it get its fonts from, does it come with any fonts on depen on the system having some fonts installed somewhere else.

Update Based on advise from gerynix

fc-list

returns no fonts

GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames()

gives

java.lang.NullPointerException
        at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264)
        at sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:219)
        at sun.awt.FontConfiguration.init(FontConfiguration.java:107)
        at sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:774)
        at sun.font.SunFontManager$2.run(SunFontManager.java:431)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.font.SunFontManager.<init>(SunFontManager.java:376)
        at sun.awt.FcFontManager.<init>(FcFontManager.java:35)
        at sun.awt.X11FontManager.<init>(X11FontManager.java:57)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at java.lang.Class.newInstance(Class.java:442)
        at sun.font.FontManagerFactory$1.run(FontManagerFactory.java:83)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:74)
        at sun.java2d.SunGraphicsEnvironment.getFontManagerForSGE(SunGraphicsEnvironment.java:190)
        at sun.java2d.SunGraphicsEnvironment.getAvailableFontFamilyNames(SunGraphicsEnvironment.java:224)
        at sun.java2d.SunGraphicsEnvironment.getAvailableFontFamilyNames(SunGraphicsEnvironment.java:252)
        at sun.java2d.HeadlessGraphicsEnvironment.getAvailableFontFamilyNames(HeadlessGraphicsEnvironment.java:94)
        at Fonts.main(Fonts.java:10)

回答1:


It gets it from the environment on top of which you are running your application.

Look into:

GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames()

https://docs.oracle.com/javase/7/docs/api/java/awt/GraphicsEnvironment.html



来源:https://stackoverflow.com/questions/43144517/where-are-fonts-defined-installed-for-openjdk-java-on-linux

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!