Obtener la ruta de la aplicacion en Java con StringTokenizer
Mediante getClass().getResource("archivo.ext"); podemos obtener el URL desde donde se esta ejecutando el programa, y obtener la dirección exacta del archivo que deseemos localizar, el problema radica en que nos devuelve algo como esto:
Aquí les dejo un ejemplo de como utilizando StringTokenizer podemos obtener nuestra ruta exacta algo así como: "C:/Documents%20and%20Settings/SLiM/Escritorio/Tecno/programa/Tutoriles/classes/archivo.ext"
String ruta = getClass().getResource(file).toString();
StringTokenizer tokenizer = new StringTokenizer(ruta, "/");
tokenizer.nextToken(); // Para saltar el la parte que no deseamos
String newRuta="";
while (tokenizer.hasMoreTokens()) {
newRuta+= tokenizer.nextToken()+"/";
}
return newRuta;
}
public static void main(String[] args) {
miPrograma instancia=new miPrograma();
System.out.println(instancia.getPath());
}
}
Esperamos que este miniTecnoTurorial haya sido de utilidad. Un saludo desde TecnoTutoriales.
2 comentarios:
Funciona bien el código, sólo hice una pequeña modificación para obtener sólo la ruta sin incluir el nombre del archivo, por si a alguien le sirve... Tienes idea si esto funciona de la misma manera en linux??
StringTokenizer tokenizer = new StringTokenizer(ruta, "/");
tokenizer.nextToken(); // Para saltar el la parte que no deseamos
String newRuta="";
int i = 0;
while (i < (tokenizer.countTokens()-1)) {
newRuta+= tokenizer.nextToken()+"/";
}
Sería mucho más sencillo si utilizan el método replace(oldChar,newChar) y en el lugar de oldChar ponen "file:/" y en el lugar de newChar ponen un String vacío. Ej.
String = String.replace("file:/","");
Publicar un comentario