Я полагаю, что коды возврата добавляют к шуму кода. Например, я всегда ненавидел вид кода COM/ATL из-за кодов возврата. Должна была быть проверка HRESULT на каждую строку кода. Я полагаю, что ошибочный код возврата является одним из плохих решений, принятых архитекторами COM. Это мешает делать, логическая группировка кода, таким образом для кодирования обзора становится трудной.
я не уверен в сравнении производительности, когда существует явная проверка на код возврата каждая строка.
Я использовал это: http://bitrock.com , они позволяют использовать его как для открытого, так и для закрытого программного обеспечения
Обновление: для кросс-платформенных сборок существует плагин IzPack для Maven.
Если вы используете Maven 1 или 2 для своих сборок, есть Плагин NSIS (только для Windows).
Оба являются оболочкой для компилятора сценария установки командной строки NSIS для создания исполняемого файла установщика Windows из сценария setup.nsi.
openInstaller из проекта Glassfish также заслуживает внимания.