Para una aplicación simple sin dependencias, la manera más fácil es crear un archivo JAR ejecutable.
Para una aplicación complicada, debe empaquetar el JAR primario y las demás cosas de las que depende, y presentarlo de forma tal que el usuario pueda instalarlo. Esto podría ser un simple archivo ZIP (o equivalente) para que el usuario descomprima. (Esa es la forma en que se distribuye Eclipse, por ejemplo). Alternativamente, podría ser un instalador elegante ... que necesitaría escribir o generar. (Hay una gran variedad de generadores instalador por ahí:. Alguna fuente libre/abierto, otros comerciales)
Básicamente, es necesario equilibrar "la facilidad de instalación" para el usuario frente a la cantidad de esfuerzo (y dinero) que está preparado para invertir en crear una infraestructura de instalador para su aplicación.
Alternativamente, si está preparado para la aplicación que se hospedará e iniciará desde un servidor web, Java WebStart es una buena alternativa a un instalador, sobre todo porque elimina la necesidad de que el usuario vuelva a instalar las versiones más nuevas de su aplicación.
Crea un archivo jar ejecutable usando tu IDE, o si quieres construir un instalador puedes echar un vistazo a http://installbuilder.bitrock.com/ –
Mira estas preguntas sobre stackflow: [Cómo hacer el instalador de la aplicación de escritorio java para multiplataforma?] (http://stackoverflow.com/q/979572/851432) y [Instaladores de aplicaciones Java] (http://stackoverflow.com/q/184060/851432). – Jomoos