linux 上 Openjdk Java 的字体 defined/installed 在哪里
Where are fonts defined/installed for Openjdk Java on linux
在 Ubuntu 上安装了 Oracle 8 jdk,在 jre/lib 中它有各种 fontProperties 文件和一个包含字体的字体目录。但是当安装 OpenJdk 8 时,jre/lib.
中的字体文件中没有这样的字体文件夹
那么它从哪里得到它的字体,它是否有任何字体依赖于在其他地方安装了一些字体的系统。
更新
基于 gerynix
的建议
fc-list
returns 没有字体
GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames()
给予
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.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.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)
它从您所在的环境中获取它 运行 您的应用程序。
调查:
GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames()
https://docs.oracle.com/javase/7/docs/api/java/awt/GraphicsEnvironment.html
在 Ubuntu 上安装了 Oracle 8 jdk,在 jre/lib 中它有各种 fontProperties 文件和一个包含字体的字体目录。但是当安装 OpenJdk 8 时,jre/lib.
中的字体文件中没有这样的字体文件夹那么它从哪里得到它的字体,它是否有任何字体依赖于在其他地方安装了一些字体的系统。
更新 基于 gerynix
的建议fc-list
returns 没有字体
GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames()
给予
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.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.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)
它从您所在的环境中获取它 运行 您的应用程序。
调查:
GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames()
https://docs.oracle.com/javase/7/docs/api/java/awt/GraphicsEnvironment.html