The Release Kit is configured to produce 'backwards compatible' Java code using -target and -source. When running 'javac' with these flags this requires the "rt.jar" that matches the older JDK to be present -- not something that is shipped with newer JDKs. The purpose of this directory is to store such rt.jar files, which are then included into our compilation process through setting JAVACFLAGS appropriate (using -bootclasspath). At the time of writing Greenstone3 targets JDK 1.8 as the oldest supported version. Over time it is expected that we might start accumulating other versions of rt.jar here, and so this file has been named: rt-openjdk8.jar which reflects that it is the OpenJDK Version 8 of rt.jar that has been placed here. The actualy distribution of JDK used (OpenJDK) should not be relevant here, but is reflected in the filename chosen for reasons of transparency For some additional background on compiling with -source and -target, see: https://stackoverflow.com/questions/15492948/javac-source-and-target-options == An added extra wrinkle is we also need to deal with any jar files in jre/lib/ext (part of Java's extension mechanism) that are used by any Greenstone3 Java source code. It turns out Greenstone3 admin tool uses javax.crypto package which means we also need to effectively add in 'jce.jar' here. Unlike rt.jar, this is *not* something that is expected to change over time, and forunately Oracle has a download for the extension: https://www.oracle.com/java/technologies/java-archive-downloads-java-plat-downloads.html# At the time of writing, JCE-1.2.2 Following the instructions included in the download, there are in fact 4 jar files that java/javac need access to to support the JCE extension: jce1_2_2.jar local_policy.jar sunjce_provider.jar US_export_policy.jar These are provided there, and added in to the -bootclasspath part of JAVACFLAGS through rk-setup.bash