My docker container requires JAVA_HOME to be set. I have added it to the Dockerfile as below
ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/jre
The image built from a Dockerfile is forever static. Its Java location will never change unless rebuilt.
When the image is started as a container, however, anything can happen. If there's any scripts that will edit the Java location during runtime, then this script is probably also where JAVA_HOME should be updated.
If you mean that you want to dynamically build your image using an arbitrary base image with differing java location then this should probably be handled by a build script.