Вы можете использовать значения, хранящиеся в реестре, для автоматического обнаружения места установки Java и настройки переменной JAVA_HOME.
HKLM > Software > JavaSoft > Java Runtime Environment
В этом месте находится ключ под названием CurrentVersion. Эта версия ссылается на один из каталогов на этом уровне по имени. Открытие каталога предоставляет другой ключ под названием JavaHome. Значение JavaHome - это путь к файловой системе, который можно использовать для определения переменной среды JAVA_HOME.
В пакетном файле вы можете сделать что-то вроде:
FOR /F "skip=2 tokens=2*" %%A IN ('REG QUERY "HKLM\Software\JavaSoft\Java Runtime Environment" /v CurrentVersion') DO set CurVer=%%B
FOR /F "skip=2 tokens=2*" %%A IN ('REG QUERY "HKLM\Software\JavaSoft\Java Runtime Environment\%CurVer%" /v JavaHome') DO set JAVA_HOME=%%B
Если вы хотите узнать больше, я написал учебник , описывающий, что необходимо для создания пакетного файла для автоматического обнаружения JAVA_HOME.