Reputation: 13110
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)
Upvotes: 4
Views: 9180
Reputation: 51
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
Upvotes: 1