Documentation Contents

# Supported Fonts

The set of supported fonts varies between different implementations of the Java platform. For the terminology used, see the `Font` class description.

- Support for Physical Fonts
- Support for Logical Fonts
- The Lucida Fonts

## Support for Physical Fonts

The JRE supports TrueType and PostScript Type 1 fonts.

Physical fonts need to be installed in locations known to the Java runtime environment. The JRE looks in two locations: the `lib/fonts` directory within the JRE itself, and the normal font location(s) defined by the host operating system. If fonts with the same name exist in both locations, the one in the `lib/fonts` directory is used.

Users can add physical fonts that use a supported font technology by installing them either in the `lib/fonts` directory within the JRE, or by installing them in a way supported by the host operating system. The recommended location to add per-user fonts on Solaris or Linux is the `$HOME/.fonts` directory which is searched by the platform's `libfontconfig`, and which is in turn used by the JDK.

## Support for Logical Fonts

Logical font names are mapped to physical fonts in implementation dependent ways. Typically one logical font name maps to several physical fonts in order to cover a large range of characters. The JRE uses font configuration files to define the mapping.

Users can add a limited number of supported TrueType and Type 1 physical fonts as fallback fonts for logical fonts used in Java 2D rendering by installing them in the `lib/fonts/fallback` directory within the JRE. However, this mechanism has the following restrictions:

- The same fonts are used for all logical fonts.
- The order in which the fonts are used cannot be defined.
- AWT heavyweight components on Windows do not work.
- The mechanism does not work on macOS.
- The number of fonts that can be added is limited in a way that cannot be precisely specified. On Windows, no more than 200 fonts can be assumed to work, and on Linux and Solaris it could be considerably fewer, with no guaranteed minimum number.

## The Lucida Fonts

The JDK and the JRE bundle several physical fonts of the "Lucida" design family. These fonts are also licensed for use in other implementations of the Java Platform. These fonts are physical fonts, but since they come with the Java SE Runtime, they don't depend on the host operating system. Using them provides the benefit of a consistent look and feel across platforms and implementations for a large set of languages.

There are three different type families: `"Lucida Sans"`, `"Lucida Sans Typewriter"`, and `"Lucida Bright"`. Each family has plain, bold, italic, and bold-italic styles. Not all of these are present in all Java SE implementations. For example, the default download bundle of the JRE for Windows only contains the Lucida Sans plain font (but note that application developers can include all Lucida fonts with a Java runtime environment that they redistribute with an application).

The following table shows which Unicode character blocks are covered by each font family:

Unicode Block | Lucida Sans | Lucida Sans Typewriter | Lucida Bright
--- | --- | --- | ---
Basic Latin | yes | yes | yes
Latin-1 Supplement | yes | yes | yes
Latin Extended-A | yes | yes | yes
Latin Extended-B | partial | partial | partial
IPA Extensions | partial | no | no
Spacing Modifier Letter | partial | partial | partial
Combining Diacritical Marks | partial | no | partial
Greek | yes | yes | yes
Cyrillic | partial | partial | partial
Hebrew | yes | yes | no
Arabic | partial | partial | partial
Devanagari | yes | no | no
Thai | yes | yes | no
General Punctuation | partial | partial | partial
Superscripts and Subscripts | partial | partial | partial
Currency Symbols | partial | partial | partial
Letterlike Symbols | partial | partial | partial
Number Forms | partial | partial | no
Arrows | partial | partial | partial
Mathematical Operators | yes | partial | yes
Enclosed Alphanumerics | partial | no | no
Box Drawings | partial | partial | no
Block Elements | partial | partial | no
Geometric Shapes | partial | partial | partial
Miscellaneous Symbols | partial | partial | no
Dingbats | yes | no | no
Alphabetic Presentation Forms | partial | partial | no
Arabic Presentation Forms-A | partial | partial | partial
Arabic Presentation Forms-B | yes | yes | yes

Note that of the writing systems that are generally fully supported by the JRE, the Lucida fonts do not support Chinese (Simplified), Chinese (Traditional), Japanese, and Korean. (See JDK 8 and JRE 8 Supported Locales.)

The fonts are installed in the Java SE Runtime Environment's `lib/fonts` directory as the following files (not all of them may be present):

    LucidaSansDemiBold.ttf
    LucidaSansRegular.ttf
    LucidaTypewriterBold.ttf
    LucidaTypewriterRegular.ttf
    LucidaBrightDemiBold.ttf
    LucidaBrightDemiItalic.ttf
    LucidaBrightItalic.ttf
    LucidaBrightRegular.ttf

Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved.
Contact Us