Same issue, fixed by following this Stack Overflow answer: https://stackoverflow.com/a/64917842
TLDR, java_home is how affected by environment variable JAVA_HOME and reports this value, ignoring the parameter. It appears to me this is a bug.
You can get around it by unsetting env var JAVA_HOME before using, e.g.
unset JAVA_HOME ; /usr/libexec/java_home -v 1.8
^ this works for me as I have JDK 8 and 15 installed.