diff --git a/tools/cldr/cldr-to-icu/README.txt b/tools/cldr/cldr-to-icu/README.txt
index 1b5a493..ec9ce25 100644
--- a/tools/cldr/cldr-to-icu/README.txt
+++ b/tools/cldr/cldr-to-icu/README.txt
@@ -16,11 +16,23 @@
 Important directories
 ---------------------
 
-<CLDR_DIR>  = The top-level directory for the CLDR production data (typically
-              the "production" directory in the staging repository).
+CLDR_ROOT = The top-level direcetory for the CLDR project, containing CLDR
+            code and non-production data. Usually obtained from:
+            https://github.com/unicode-org/cldr
+
+CLDR_DIR  = The top-level directory for the CLDR production data (typically
+            the "production" directory in the staging repository). Usually
+            obtained from:
+            https://github.com/unicode-org/cldr-staging/tree/master/production
+
+In Posix systems, it's best to set these as exported shell variables, and any
+following instructions assume they have been set accordingly:
+
+$ export CLDR_ROOT=/path/to/cldr
+$ export CLDR_DIR=/path/to/cldr-staging/production
 
 Note that you should not attempt to use data from the CLDR project directory
-(were the CLDR API code exists) for conversion into ICU data. The process now
+(where the CLDR API code exists) for conversion into ICU data. The process now
 relies on a pre-processing step, and the CLDR data must come from the separate
 "staging" repository (i.e. https://github.com/unicode-org/cldr-staging) or be
 pre-processed locally into a different directory.
@@ -30,24 +42,28 @@
 -------------
 
 This project relies on the Maven build tool for managing dependencies and uses
-Ant for configuration purposes, so both will need to be installed. On a debian
+Ant for configuration purposes, so both will need to be installed. On a Debian
 based system, this should be as simple as:
 
 $ sudo apt-get install maven ant
 
-You also need to follow the instructions in lib/README.txt to install the CLDR
-JAR files, which contain the CLDR API used by these tools. This step will only
-need to be repeated if you update the code in the CLDR project you are using.
+You also need to install two additional CLDR JAR files in a local Maven
+repository, which can be achieved by either running:
+
+$ install-cldr-jars.sh "$CLDR_ROOT"
+
+from this directory, or following the instructions in lib/README.txt. This
+step must be repeated if you update the code in the CLDR project you are
+using, or are using multiple versions of the CLDR code during development.
 
 Generating all ICU data
 -----------------------
 
-$ export CLDR_DIR="<CLDR_DIR>"
 $ ant -f build-icu-data.xml
 
 
-Other Examples (assuming CLDR_DIR is set)
------------------------------------------
+Other Examples
+--------------
 
 * Outputting a subset of the supplemental data into a specified directory:
 
diff --git a/tools/cldr/cldr-to-icu/install-cldr-jars.sh b/tools/cldr/cldr-to-icu/install-cldr-jars.sh
new file mode 100755
index 0000000..9c09916
--- /dev/null
+++ b/tools/cldr/cldr-to-icu/install-cldr-jars.sh
@@ -0,0 +1,113 @@
+#!/bin/bash -u
+#
+# This script will attempt to build and install the necessary CLDR JAR files
+# from a given CLDR installation root directory. The JAR files are installed
+# according to the manual instructions given in README.txt and lib/README.txt.
+#
+# The user must have installed both 'ant' and 'maven' in accordance with the
+# instructions in README.txt before attempting to run this script.
+#
+# Usage (from the directory of this script):
+#
+# ./install-cldr-jars.sh <CLDR-root-directory>
+
+# Exit with a message for fatal errors.
+function die() {
+  echo "$1"
+  echo "Exiting..."
+  exit 1
+} >&2
+
+# Runs a given command and captures output to the global log file.
+# If a command errors, the user can then view the log file.
+function run_with_logging() {
+  echo >> "${LOG_FILE}"
+  echo "Running: ${@}" >> "${LOG_FILE}"
+  echo "----------------------------------------------------------------" >> "${LOG_FILE}"
+  "${@}" >> "${LOG_FILE}" 2>&1
+  if (( $? != 0 )) ; then
+    echo "---- Previous command failed ----" >> "${LOG_FILE}"
+    echo "Error running: ${@}"
+    read -p "Show log file? " -n 1 -r
+    echo
+    if [[ "${REPLY}" =~ ^[Yy]$ ]] ; then
+      less -X "${LOG_FILE}"
+    fi
+    mv -f "${LOG_FILE}" "${ROOT_DIR}/last_log.txt"
+    echo "Log file: ${ROOT_DIR}/last_log.txt"
+    exit 1
+  fi
+  echo "---- Previous command succeeded ----" >> "${LOG_FILE}"
+}
+
+# First require that we are run from the same directory as the script.
+ROOT_DIR="$(realpath $(dirname $0))"
+if [[ "${ROOT_DIR}" != "$(realpath ${PWD})" ]] ; then
+  echo "WARNING: Shell script should be run from the project root directory"
+  echo "Current directory:"
+  echo "  ${PWD}"
+  echo "Project root direcory (where this script is):"
+  echo "  ${ROOT_DIR}"
+  read -p "Change to project root and continue? " -n 1 -r
+  echo
+  [[ "${REPLY}" =~ ^[Yy]$ ]] || die "Script must be run from the project root directory"
+  cd "$ROOT_DIR"
+fi
+
+# Check for some expected environmental things early.
+which ant > /dev/null || die "Cannot find Ant executable 'ant' in the current path."
+which mvn > /dev/null || die "Cannot find Maven executable 'mvn' in the current path."
+[[ -d "lib" ]] || die "Cannot find expected 'lib' directory in: $PWD"
+
+# Check there's one argument that points at a directory (or a symbolic link to a directory).
+(( $# == 1 )) && [[ -d "$1" ]] || die "Usage: ./install-cldr-jars.sh <CLDR-root-directory>"
+
+# Set up a log file (and be nice about tidying it up).
+LOG_FILE="$(tempfile)" || die "Cannot create temporary file!"
+trap "rm -f -- '${LOG_FILE}'" EXIT
+echo "---- LOG FILE ---- $(date '+%F %T') ----" >> "${LOG_FILE}"
+
+# Build the cldr.jar in the CLDR tools directory.
+CLDR_TOOLS_DIR="$1/tools/java"
+pushd "${CLDR_TOOLS_DIR}" > /dev/null || die "Cannot change directory to: ${CLDR_TOOLS_DIR}"
+
+echo "Building CLDR JAR file..."
+run_with_logging ant -f ./build.xml clean jar
+[[ -f "cldr.jar" ]] || die "Error creating cldr.jar file"
+[[ -f "libs/utilities.jar" ]] || die "Cannot find libs/utilities.jar"
+
+popd > /dev/null
+
+# Install both required CLDR jars in the lib/ directory.
+pushd "${ROOT_DIR}/lib" > /dev/null || die "Cannot change to lib directory"
+
+# The -B flag is "batch" mode and won't mess about with escape codes in the log file.
+echo "Installing CLDR JAR file..."
+run_with_logging mvn -B install:install-file \
+  -DgroupId=org.unicode.cldr \
+  -DartifactId=cldr-api \
+  -Dversion=0.1-SNAPSHOT \
+  -Dpackaging=jar \
+  -DgeneratePom=true \
+  -DlocalRepositoryPath=. \
+  -Dfile="${CLDR_TOOLS_DIR}/cldr.jar"
+
+echo "Installing CLDR utilities JAR file..."
+run_with_logging mvn -B install:install-file \
+  -DgroupId=com.ibm.icu \
+  -DartifactId=icu-utilities \
+  -Dversion=0.1-SNAPSHOT \
+  -Dpackaging=jar \
+  -DgeneratePom=true \
+  -DlocalRepositoryPath=. \
+  -Dfile="${CLDR_TOOLS_DIR}/libs/utilities.jar"
+
+popd > /dev/null
+
+# We are back in the root directory now.
+echo "Syncing local Maven repository..."
+run_with_logging mvn -B dependency:purge-local-repository -DsnapshotsOnly=true
+
+mv -f "${LOG_FILE}" "last_log.txt"
+echo "All done! (log file: last_log.txt)"
+trap - EXIT
