¿Qué versión de Java debo usar para que una aplicación de escritorio llegue a la mayoría de los usuarios? [cerrado]

15

¿Estoy en lo cierto al suponer que la mayoría de los usuarios finales están utilizando una versión anterior a Java 8? Dado que no quiero obligar a las personas a actualizar para usar mi aplicación, ¿debo planear que use Java 7 o incluso 6 desde el principio, incluso si eso significa que no puedo aplicar los beneficios de las versiones más nuevas para mí? ¿como desarrollador?

Andreas Hartmann
fuente
66
¿Cómo será relevante la respuesta a esta pregunta en un año? ¿Cinco años? Hacer una pregunta sobre, por ejemplo, Java 8 en comparación con Java 7 está bien, pero preguntar cuál de las dos versiones usar no es una buena pregunta para este sitio por el hecho de que la pregunta en sí misma está estancada en el tiempo, sin mencionar que es esencialmente pidiendo una recomendación de producto.
¿Quiénes son sus usuarios y qué tipo de aplicación es? Una aplicación para las abuelas del mundo es diferente de una aplicación de utilidad para personas de TI.
Freiheit
Java no viene preinstalado (a diferencia de .NET en Windoze), por lo que deberá incluir (un subconjunto de) JRE con su aplicación. Entonces, puedes usar lo que sea mejor. Eso significa: use la última versión estable. (eso significa ahora - una versión de JRE 1.8)
Nombre para mostrar
Siendo que las mejores prácticas para la seguridad son considerar la instalación de Java como un riesgo inaceptable, creo que la única respuesta razonable es "ninguna".
R .. GitHub DEJA DE AYUDAR A ICE
@R .., ¿dónde escuchaste tales "mejores prácticas"?
Arturo Torres Sánchez

Respuestas:

44

Confiar en un JRE instalado para que sea correcto no tiene sentido fuera de un entorno corporativo controlado donde todos los escritorios están bloqueados a una versión específica. En cuyo caso, debe hacer esta pregunta a la persona que controla ese entorno.

Para una aplicación de escritorio Java de mercado masivo, debe usar un instalador o iniciador que incluya el JRE que desea que estén usando, o configure Java Web Start (JAWS).

Tenga en cuenta que si realmente distribuye físicamente un JRE incluido, debe cumplir con los términos de la licencia . No soy abogado, pero eso no debería ser problemático para la mayoría de los propósitos. Si se encuentra en una situación en la que tiene un equipo legal, por supuesto, debe superarlo.

Para un desarrollador u otra herramienta orientada técnicamente, generalmente es preferible publicar los frascos en Maven Central , por lo que la distribución y descarga está completamente automatizada. Este es un caso en el que apegarse a versiones anteriores de Java es una ventaja, ya que permite su uso en corporaciones bloqueadas a una versión anterior.

Pero no me preocuparía demasiado por eso para un proyecto que comenzó hoy.

Finalmente, si todo lo anterior es demasiado trabajo, puede publicar la fuente en github o bitbucket y dejar que el usuario lo construya por sí mismo.

soru
fuente
3
Una respuesta atemporal a una pregunta oportuna, increíble. Agregaría que puede distribuir una versión alternativa gratuita de JRE para las personas a las que les gusta ese tipo de cosas. Podría hacerlo incluso una versión portátil.
StarWeaver
1
BREJING JRE requiere licencia y es terriblemente peligroso si la aplicación accede a Internet.
Acelerado
Por favor explique, ¿eso significa que tengo que licenciar un JRE incluso si voy a lanzar mi software sin una intención de lucro, o tal vez incluso de código abierto?
Andreas Hartmann
12

Oracle no admite Java 6, así que no lo use. El soporte de Java 7 finaliza el 15 de abril, para que lo sepas. Solo usa Java 8 y ahórrate la molestia.

Consulte la hoja de ruta de soporte de Oracle para obtener más información.

Haakon Løtveit
fuente
Desearía que este fuera el caso de Android :(.
Jared Burrows
1

Otro punto a considerar es que, dependiendo del tamaño de su proyecto, qué versión de Java estará fuera y qué será obsoleta. Para la mayoría de los proyectos importantes, sería aconsejable trabajar con la versión actual 'fuera de beta / alpha' (en este caso, Java 8) que puede o no estar actualizada cuando se lance.

huntersan9
fuente