Cómo saber la versión de JDK desde el código Java

Cómo saber la versión de JDK desde el código Java

preguntado el 09 de enero de 11 a las 12:01

3 Respuestas

Supongo que te refieres solo a la versión de Java, en cuyo caso prueba esto:

String version = System.getProperty("java.version");

Respondido el 09 de enero de 11 a las 15:01

Depender de la cadena java.version para cualquier otra cosa que no sea mostrarle a un humano es frágil y se romperá si se ejecuta en otra implementación de Java.

La SOLO Una forma confiable de programación es usar la reflexión para preguntar cuidadosamente si una instalación determinada está disponible, y luego seleccionar el código apropiado en consecuencia.

Respondido el 09 de enero de 11 a las 15:01

¿Puede dar un ejemplo de cuándo fallaría esto? - Jesse Barnum

@Jesse, prefiero decirlo al revés. ¿Qué regla establecería para analizar la cadena java.version? - Thorbjørn Ravn Andersen

@Jesse, no estaba al tanto de esta propiedad. Sin embargo, no puedo ver con un vistazo rápido en el JLS que está garantizado que está presente y que contiene un número válido. ¿Quizás sabes dónde dice eso? - Thorbjørn Ravn Andersen

@Jesse, la pregunta crucial aquí es si esto es solo para JVM basadas en Hotspot. No puedo decirlo de inmediato. - Thorbjørn Ravn Andersen

No use Float.valueOf como @JesseBarnum. Esto me falló porque 1.8>=1.8 devuelto falso para mí, debido a errores de redondeo. Usar .compareTo("1.8")>=0 en lugar de. - Mark Jeronimus

Si también necesita conocer la versión de bits (32 bits o 64 bits) y está ejecutando una JVM HotSpot, puede probar este código:

System.getProperty("sun.arch.data.model")

Ningún beneficiario de que funcionará para otras implementaciones de Java en lugar de HotSpot.

Respondido el 03 de diciembre de 18 a las 09:12

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.