nov 29 2009
Encontrar la ruta del JDK
Encontrar la ruta del JDK es bastante simple. Solo tienen que ir al explorador de windows, archivos de programa, java, … mentira! es una broma xD. Bueno en el código también es bastante simple, solo que cuando lo empaquetas en un jar, en lugar de mostrarte la ruta del JDK te muestra la del JRE, lo cual yo no quería en el tiempo que hice esto, ya que necesita algunas herramientas del kit de desarrollo, como el compilador (javac).
Para solucionar este problema hice un pequeño método para que busque la ruta del jdk. Claro que no lo voy a hacer una búsqueda por todo el disco duro, sino que me basaré en el System.getProperty(“java.home”) y luego buscaré las diferentes versiones y actualizaciones, ya que por decir en mi pc tengo la siguiente version: jdk1.6.0_16 y bueno no es algo muy complicado, pero para mi me fue muy útil
.
Aquí esta el código:
import java.io.*;
public class JDKHome
{
public static String findJDKHome()
{
String javaHome = System.getProperty("java.home");
String jdkHome = javaHome.split("j")[0];
String jdk="";
String s="";
for(int i=4; i<=6; i++)
{
for(int j=0; j<=2; j++)
{
s = "jdk1." + i + "."+ j;
jdk = jdkHome + s;
File f1 = new File(jdk);
if(f1.exists()) //Si existe es porq la version del jdk es un numero 1.5.0(por ejemplo), sin actualizacion
{
jdkHome = jdk;
}
else//Sino es porq es una actualizacion{
for(int k=1; k<=20; k++)
{
String act = (k<=9)?"_0":"_";
jdk = jdkHome + s + act + k;
File f2 = new File(jdk);
if(f2.exists())
{
jdkHome = jdk;
}
}
}
}
}
return jdkHome + System.getProperty("file.separator") + "bin" + System.getProperty("file.separator");
}
public static void main(String args[])
{
System.out.println(findJDKHome());
//Cuando se empaqueta en un jar, la siguiente linea te muestra la ruta del JRE solamente
System.out.println(System.getProperty("java.home"));
}
}
Ojala que will no postee algo luego, porque opacará mi post u_U, en fin… xD





nov 29, 2009 @ 12:24:30
Joder Hijo. Hay q aclarar que donde sale:
< es <
u_U
dic 08, 2009 @ 03:18:32
Creo q te complicaste un poco, ya que creo que hay el System.getProperty(“java.version”), pero no lo he probado con el jar, eso evitaria el recorrido de todos los for.