У меня была именно такая проблема около года назад, когда я использовал Lauch4J, чтобы обернуть небольшую Java-программу, для которой требовалась 32-битная DLL (swt-win32.dll, как это произошло).
Я обнаружил, что если бы были установлены 32-битные и 64-битные JVM, Launch4J всегда предпочитал бы 64-битный. Это будет работать только в том случае, если 64-разрядная JVM будет удалена, что, очевидно, не является практическим решением.
Я не нашел способа заставить Launch4J отдавать предпочтение (и требовать) 32-битной JVM, после того, как немного поискал и разместил вопросы на своем форуме.
Поэтому я оценил большое количество альтернативных JRE-конвертеров (я использовал этот список: http://www.excelsior -usa.com / articles / java-to-exe.html ).
В итоге я остановился на Jar2Exe, который был единственным, у которого были нужные мне функции. Это не бесплатно, хотя есть ознакомительная версия, и я думаю, что это не дорого.
Надеюсь, это поможет!