在Linux上为Openjdk Java定义/安装哪些字体? [英] Where are fonts defined/installed for Openjdk Java on linux
问题描述
那么它从哪里得到它的字体,是否带有任何字体
更新
基于gerynix的建议
fc-list
不返回字体
GraphicsEnvironment.getLocalGraphicsEnvironment()。getAvailableFontFamilyNames()
p>
java.lang.NullPointerException $ b $在sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264)
$ p $
在sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:219)
在sun.awt.FontConfiguration.init(FontConfiguration.java:107)
在sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java :774)
在sun.font.SunFontManager $ 2.run(SunFontManager.java:431)
在j < init>(SunFontManager.java:376)$ b $在sun.awt.FcFontManager。< init>(FcFontManager .java:35)
at sun.awt.X11FontManager。< init>(X11FontManager.java:57)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun。 (Constructor.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java: 423)
在java.lang.Class.newInstance(Class.java:442)
在sun.font.FontManagerFactory $ 1.run(FontManagerFactory.java:83)$ b $在java.security。 AccessController.doPrivileged(本地方法)
在sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:74)
在sun.java2 d。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)
$ div class =h2_lin>解决方案它从运行应用程序的环境中获取它。
$ p
$ b $ pre $GraphicsEnvironment.getLocalGraphicsEnvironment()。getAvailableFontFamilyNames()
https://docs.oracle.com/javase/7/docs/api/java/awt/GraphicsEnvironment.html
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)
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
这篇关于在Linux上为Openjdk Java定义/安装哪些字体?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!