BD-Java

BD-Java is a technology used on most blu-ray discs. Every blu-ray player contains a Java Virtual Machine that runs BD-Java application (usually) present on a blu-ray disc.

Java application on a blu-ray disc serves multiple purposes - draws disc menus, selects playlists for playback, and sometimes is used as part of content protection. In some cases MakeMKV requires a Java Runtime Environment (JRE) in order to process the disc.

MakeMKV can use any version of Java and usually can locate ne, if it is already installed. If you already have Java installed then you don't have to do anything - MakeMKV will automatically find and use the best available version.

If you don't have JRE installed, then you will have to install one in order for MakeMKV to use it. It is also possible to specify Java path manually in MakeMKV preferences - this way you can avoid system-wide JRE install, or force MakeMKV to use a specific JRE version.

Below is a short list of cases when MakeMKV needs Java runtime:

Fake playlist protection

Some discs employ a so-called Fake Playlists protection. Instead of a single movie the disc contains dozens of copies of the movie with scenes present in random order. Only single copy is a valid one. The Java program on the disc selects a correct playlist, and MakeMKV needs Java runtime in order to run the program on the disc. If Java runtime is missing, the disc will be opened, but many fake titles will be present.

Extended BD+ Handshake

Some discs protected by BD+ use a complex Java code during BD+ handshake. For these discs MakeMKV requires Java runtime to properly emulate the handshake. If Java runtime is missing, the disc will not open.

AACS Soft-KCD

The so-called Soft-KCD is an extension to AACS where Java program on the disc transforms decryption keys for the disc. MakeMKV requires Java runtime in order to open these discs.

Conclusion

It is advisable to have JRE installed so MakeMKV can use it. Any Java Runtime version greater than 1.5.0 will work and there is no need to install Java Runtime system-wide - it is possible to install JRE into private location and provide path to MakeMKV.