¿Es posible convertir una aplicación Java en un paquete independiente que se ejecuta "fuera de la caja"? No se debe exigir al usuario final que instale ningún JRE de Java, ni el instalador debe contener un JRE e instalarlo para el usuario.
La distribución final debe contener un ejecutable nativo (con suerte uno para cada uno de Windows, Mac y Linux) junto con los archivos de datos regulares y cualquier JAR adicional si es necesario. No estoy buscando una solución de "un solo archivo" específicamente: en realidad me gustaría que los archivos de datos no se ofusquen.
¿Cómo se puede hacer esto?
fuente
Para Mac, consulte la documentación de Oracle para empaquetar una aplicación Java para Mac . Han configurado Java 7 para que pueda agrupar el tiempo de ejecución en un paquete de aplicaciones que contenga sus archivos jar (.app es una carpeta tratada como ejecutable realmente), que se requiere para su distribución en Mac App Store. Básicamente, el paquete .app hace casi lo mismo que sugiere la respuesta JAVA_HOME de Eren, pero está empaquetado como una aplicación Mac "nativa".
Para distribuir sin Mac App Store, puede salirse sin firmar la aplicación, diciéndoles a sus usuarios de Mountain Lion que pueden moverse por Gatekeeper haciendo clic derecho (o ctrl + clic) en su aplicación y haciendo clic en "Abrir" cuando Primero abra la aplicación. Esto todavía les advertirá que la aplicación no está firmada, pero les permitirá abrirla de todos modos, y luego les permitirá hacer doble clic en la aplicación para abrirla posteriormente.
(Nota al margen: también podría salirse con la marca de estilo Linux de los scripts de shell como ejecutables y luego construir un paquete .app alrededor de eso. NetBeans hace esto en Mac y Linux, aunque sin un JRE / JDK incluido)
fuente