From Wikipedia, the free encyclopedia
  (Redirected from Java properties)
Jump to: navigation, search
Filename extension .properties

.properties is a file extension for files mainly used in Java related technologies to store the configurable parameters of an application. They can also be used for storing strings for Internationalization and localization; these are known as Property Resource Bundles.

Each parameter is stored as a pair of strings, one storing the name of the parameter (called the key), and the other storing the value.


Each line in a .properties file normally stores a single property. Several formats are possible for each line, including key=value, key = value, key:value, and key value. Note that single-quotes or double-quotes are considered part of the string. Trailing space is significant and presumed to be trimmed as required by the consumer.

Comment lines in .properties files are denoted by the number sign (#) or the exclamation mark (!) as the first non blank character, in which all remaining text on that line is ignored. The backwards slash is used to escape a character. An example of a properties file is provided below.

# You are reading the ".properties" entry.
! The exclamation mark can also mark text as comments.
# The key characters =, and : should be written with
# a preceding backslash to ensure that they are properly loaded.
# However, there is no need to preceede the value characters =, and : by a backslash.
website = https://en.wikipedia.org/
language = English
# The backslash below tells the application to continue reading
# the value onto the next line.
message = Welcome to \
# Add spaces to the key
key\ with\ spaces = This is the value that could be looked up with the key "key with spaces".
# Unicode
tab : \u0009
# If you want your property to include a backslash, it should be escaped by another backslash
# However, some editors will handle this automatically

In the example above, website would be a key, and its corresponding value would be https://en.wikipedia.org/. While the number sign (#) and the exclamation mark (!) marks text as comments, it has no effect when it is part of a property. Thus, the key message has the value Welcome to Wikipedia! and not Welcome to Wikipedia. Note also that all of the whitespace in front of Wikipedia! is excluded completely.

The encoding of a .properties file is ISO-8859-1, also known as Latin-1. All non-Latin-1 characters must be entered by using Unicode escape characters, e.g. \uHHHH where HHHH is a hexadecimal index of the character in the Unicode character set. This allows for using .properties files as resource bundles for localization. A non-Latin-1 text file can be converted to a correct .properties file by using the native2ascii tool that is shipped with the JDK or by using a tool, such as po2prop,[1] that manages the transformation from a bilingual localization format into .properties escaping.

An alternative to using unicode escape characters for non-Latin-1 character in ISO 8859-1 character encoded Java *.properties files is to use the JDK's XML Properties file format which by default is UTF-8 encoded, introduced starting with Java 1.5.[2]

Another alternative is to create custom control that provides custom encoding.[3]

In the forthcoming Java 9, following JDK Enhancement Proposal (JEP) 226, the default encoding for .properties files will be UTF-8, and if an invalid UTF-8 character is encountered it will revert to ISO-8859-1.


Editing .properties files is done using any text editor such as those typically installed on various Operating Systems including Notepad on Windows or Emacs, Vim, etc. on Linux systems.

Third-party tools are also available with additional functionality specific to editing .properties files such as:

Non-Java Uses and Exceptions[edit]

Apache Flex uses .properties files as well, but here they are UTF-8 encoded.[4]

In Apache mod_jk's uriworkermap.properties format, an exclamation mark ("!") denotes a Negation operator when used as the first non blank character in a line.[5]

Perl CPAN contains Config::Properties to interface to a .properties file.[6]

See also[edit]

  • XML and YAML are used by some for more complex configuration formats.


  1. ^ Translate Toolkit's po2prop converts native character encodings in a Gettext PO file into correctly escaped ascii without the need for native2ascii
  2. ^ Java XML Properties DTD
  3. ^ "java - How to use UTF-8 in resource properties with ResourceBundle - Stack Overflow". Archived from the original on 2015-03-25. Retrieved 2015-01-28. 
  4. ^ Flex IResourceBundle reference
  5. ^ Apache mod_jk uriworkermap.properties reference
  6. ^ [1]

External links[edit]