Appearance
Installing the Java Runtime Environment
From version 6.7 and above, the following client tools require the 64-bit version of Java 11:
ybbackup
ybbackupctl
ybrestore
ybload
ybunload
ybrelay
Client tools versions 6.6 or earlier required Java 8, (also known as Java 1.8).
Java 9 and 10 are not supported. Only the JRE (Java Runtime Environment) is required, but you can install the complete JDK if you prefer. The JRE is required on both Linux and Windows platforms.
Follow these steps to check that the correct version of Java is installed and install it or upgrade it if necessary. (You can install the client tools if Java is not found, or if the wrong Java version is found, but you cannot run them.)
- Check the Java version on your client system by using the
java -version
command. For example, on an Ubuntu Linux client:
me@yb.io:~$ java --version
openjdk 11.0.20.1 2023-08-24
OpenJDK Runtime Environment (build 11.0.20.1+1-post-Ubuntu-0ubuntu122.04)
OpenJDK 64-Bit Server VM (build 11.0.20.1+1-post-Ubuntu-0ubuntu122.04, mixed mode, sharing)
The build numbers may vary; what you are looking for is 11
as first element in the version string and a reference to 64-Bit
. In this example, the correct version of Java is already installed. You would be able to proceed with the client tools installation.
If your client system does not have the JRE installed (or has the wrong version), go to the Java SE site and download Java 11.
Follow the Oracle installation instructions for your client platform.
Check the Java version again when the installation is complete.
Locale compatibility
Java has introduced locale changes as outlined in JEP 252. When transitioning from Java 8 to Java 11, which was implemented with the release of ybtools 6.7, it's important to note that certain locale behaviors may have changed.
If you have never used ybtools in a version prior to 6.7, these changes do not affect you.
However, for users of ybtools versions 6.6 or earlier, particularly those employing non-English locales, there may be potential issues with data formats no longer being accepted. An illustrative example is found in the Greek language, where the morning/afternoon time indicator has shifted from πμ/μμ to π.μ./μ.μ.
To address this, a compatibility mechanism has been added to the latest version of ybtools, allowing the continued use of the previous format.
Compatibility mode on Linux/MacOS
On Linux distributions and MacOS, you can trigger the compatibility mode by setting the environment variable YB_LOCALE_COMPATIBILITY
to true
. This will revert to the locale handling that was present with ybtools before version 6.7.
Example:
export YB_LOCALE_COMPATIBILTY=true
If you wish to stop the compatibility mode, either delete the YB_LOCALE_COMPATIBILITY
variable or set it to anything other than true
.
Compatibility mode on Windows
The compatibility mode on Windows works differently and requires the use of the _JAVA_OPTIONS
environment variable. To revert to the legacy behaviour, set the _JAVA_OPTIONS
to -Djava.locale.providers=COMPAT,CLDR,SPI
.
Powershell example:
$Env:_JAVA_OPTIONS='-Djava.locale.providers=COMPAT,CLDR,SPI'
Please be aware that _JAVA_OPTIONS
may be used for other tools and options. Therefore, it is not recommended to overwrite its contents with only the Yellowbrick compatibility option. If the variable was not empty before, it's advised not to delete its contents.
Extent of the locale differences
The exhaustive list of changes introduced by JEP 252 is not well-documented. If you encounter issues with the format of your data that previously worked with earlier ybtools versions, we recommend checking if enabling the locale compatibility mode resolves the issue.