PDA

Ver la Versión Completa : Obtener versión activa de Java


Tino
30-07-2007, 21:04:46
Hola a todo el foro, tengo una pregunta para ustedes, si fueran tan amables de darme alguna idea ...

La pregunta es: ¿Se puede obtener la versión de Java activa desde un programa realizado en Delphi?

Había pensado en lanzar "java -version" desde un programa hecho en Delphi, controlar que no casca la ejecución (java no instalado o no en el path), capturar la salida y buscar la ocurrencia "version 1.x" en dicha captura, pero tiene que haber algo más simple.

Necesito saber la versión de java, para en función de la misma, lanzar la versión adecuada de un archivo jar que es una realidad una aplicación Java de escritorio hecha con Eclipse.

Como ya habreís adivinado, se trata de un EXE lanzador de una aplicación hecha con SWT. Ahora tengo un simple BAT, pero me resulta insuficiente.

Gracias

__hector
31-07-2007, 00:39:13
Bueno, como java y delphi son dos ambientes totalmente distintos, cualquier solucion que le encuentres al problema pasara siempre por ser un 'force' o trick para dar con la solucion.

Puedes hacerlo como mencionaste con java -version y parsear el resultado, buscar las versiones instaladas en el registro de windows (HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Development Kit y/o Java Runtime Environment), o buscar la ocurrencia de un jdk o jre en las variables CLASSPATH o PATH.

Cualquiera que sea el mecanismo que escojas, tendras que hacerlo por ti mismo.

Ah, y eso de que el jar se comporte de una u otra forma dependiendo de la version no me parece del todo correcto. Creo que lo mejor es sugerir que se pase a la ultima version, que por asuntos de compatibilidad deberia ejecutar tu codigo, independientemente de la version para la que compilaste. En teoria.

Tino
31-07-2007, 15:50:30
Gracias Héctor por tu respuesta. Efectivamente, creo que lo mejor sería mirar en el registro para comprobar la versión de Java.

El problema de la compatibilidad entre los JAR viene porque en la versión 1.4 de Java no incorpora unas clases del JCE que sí viene en la versión 1.5 de java y hay un conflicto de clases. Lo que hice fué recurrir a unas clases de terceros (no de Sun, quiero decir). El caso es que lo compilado en 1.4 falla en un JRE 1.5.

Seguramente habrá otra solución mejor, pero voy a optar por hacer una única versión del programa para Java 1.5 y que se actualicen los usuarios a dicha versión del JRE si quieren utilizar el programa.

Saludos y gracias de nuevo

__hector
01-08-2007, 19:52:11
Estaba casi convencido de que era algo relacionado con JCE.

Suerte!