Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Capturar directorio actual linux desde Java

Estas en el tema de Capturar directorio actual linux desde Java en el foro de Java en Foros del Web. Hola, tengo una aplicación construida en Java que lo que hace es cargar una base de datos que se encuentra en la misma carpeta que ...
  #1 (permalink)  
Antiguo 26/01/2013, 18:52
 
Fecha de Ingreso: junio-2012
Mensajes: 22
Antigüedad: 11 años, 9 meses
Puntos: 0
Capturar directorio actual linux desde Java

Hola,

tengo una aplicación construida en Java que lo que hace es cargar una base de datos que se encuentra en la misma carpeta que el .jar.
En windows y Mac funciona perfectamente, pero en linux me da error de que no encuentra la carpeta, porque no coge como referencia el directorio de la aplicación, sino que se va a /home/usuario y ahí busca la carpeta.

He probado a hacer un pwd desde la aplicación, y se encuentre donde se encuentre la aplicación la salida del comando me muestra /home/usuario.

He probado también a crear un fichero, y capturar la dirección de ese fichero, pero me da el mismo resultado que la ejecución de pwd.

Yo no puedo suponer desde que carpeta va a ejecutar el usuario la aplicación, y no conozco ningún comando aparte de pwd que capture la ubicación actual.

¿Alguna solución para esto?

Gracias.
  #2 (permalink)  
Antiguo 26/01/2013, 22:53
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Capturar directorio actual linux desde Java

Teóricamente System.getProperty("user.dir") debería darte el directorio actual. Echa un ojo en la API al método System.getProperties para ver todas las que tienes disponibles http://docs.oracle.com/javase/6/docs...ng/System.html

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 27/01/2013, 17:20
 
Fecha de Ingreso: junio-2012
Mensajes: 22
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Capturar directorio actual linux desde Java

Lo acabo de probar y con user.dir me sigue saliendo el directorio /home/usuario igualmente.
  #4 (permalink)  
Antiguo 27/01/2013, 17:50
 
Fecha de Ingreso: diciembre-2011
Mensajes: 152
Antigüedad: 12 años, 4 meses
Puntos: 34
Respuesta: Capturar directorio actual linux desde Java

El problema esta en que el directorio de ejecucion en linux por defecto es home/@user

trata de colocarte en la terminal sobre el directorio de tu aplicacion y lanzarla mediante:
java -jar @mijar.jar
  #5 (permalink)  
Antiguo 27/01/2013, 18:27
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: Capturar directorio actual linux desde Java

LuisChavezB está en lo cierto, si no quieres tener que hacer eso cada vez que quieras lanzarlo, crea un .sh para ejecutarlo desde cualquier lugar.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #6 (permalink)  
Antiguo 28/01/2013, 03:14
 
Fecha de Ingreso: junio-2012
Mensajes: 22
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Capturar directorio actual linux desde Java

Muchas gracias por vuestras respuestas. Ya encontré una solución a mi problema.
La escribo aquí por si a alguien le sirve:

Primero se obtiene la ruta completa del fichero:

String path = YourClass.class.getProtectionDomain().getCodeSourc e().getLocation().toURI().getPath();

donde YourClass es la clase desde donde se ejecuta el código.

A continuación, se puede eliminar la parte de "*. jar" con:

path=path.substring(0, path.lastIndexOf('/')+1);

Un saludo

Etiquetas: actual, directorio, linux, ruta
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:06.