Я предполагаю, что это работает под 64-битной версией Windows.
64-битная Windows делает «умные» вещи для обратной совместимости с 32-битной.
Записи реестра и пути поиска файлов автоматически перенаправляются.
Используемая вами командная строка будет 64-битной.
Для запуска 32-битной командной строки запустите% windir% \ SysWoW64 \ cmd.exe.
Вы должны быть в состоянии воспроизвести ваше состояние отказа там.
32-битный NSIS запустит пакетный файл в 32-битном режиме.
Вам необходимо определить, как файл java.exe находится в 64-битной версии.
Если вы разместите здесь свой пакетный файл, должно быть что-то достаточно очевидное, что может быть отклонено.