2017-03-31 6 views
0

installiert Oracle 8 jdk auf Ubuntu, innerhalb jre/lib es verschiedene fontProperties Dateien sowie eine Fonts dir enthalten Schriftarten hat. Aber wenn OpenJdk 8 installiert ist, gibt es keinen solchen Schriftarten-Ordner in Font-Dateien innerhalb von jre/lib.Wo sind Fonts definiert/für OpenJDK Java auf Linux installiert

Also, wo es seine Schriften erhalten, ist es mit allen möglichen Schriftarten auf Depen auf dem System kommen einige Schriftarten woanders installiert haben.

aktualisieren Basierend auf Beratung von gerynix

fc-list

lieferte keine Schriftarten

GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames() 

gibt

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) 

Antwort

1

Es wird es aus der Umgebung auf, von denen Sie Ausführen Ihrer Anwendung

Blick in:

GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames() 

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

+0

so gehe ich davon aus, wenn Sie einen abgespeckte Linux-Rechner ohne Schriftarten haben dann jeder Code, der auf einigen Schriften abhing installierten fehlschlagen würde, gibt es einen Linux-Befehl Ich kann überprüfen, welche Schriftarten installiert sind? –

+0

fc-list, erstes Google Sucher für „Linux-Check verfügbarer Schriften“ – gerynix

+0

in Ordnung, getan Ive beiden Befehle haben eindeutig keine Schriften. So ist die machien ist ein Stück Hardware mit Linux i nicht einfach wie eine gewöhnliche Maschine aktualisieren kann, gibt es eine Weise, die ich für eine Schriftart nur installieren können durch meine Java-Anwendung durch das Kopieren einer Datei über, ohne irgendetwas anderes zu beeinflussen. –