Ayuda para especificar la dirección del directorio raíz de un reporte en windows y linux

¿Cómo estás? Espero que Muy Bien
Mi duda es la siguiente:
Tengo una Aplicación cuya función es mostrar un reporte con datos de una base de datos sqlite.
A la hora de mostrar el reporte yo especifico su ubucacion así
"/reporte.jasper"
Lo anterior es la dirección que utilizó
Significa que buscará el reporte en la raíz de mí aplicacíon(es decir en la carpeta "dist" sí lo compiláramos en NetBeans) junto al jar generado.
Cuando ejecuto la aplicación desde el editor esta ubica el reporte y lo muestra(hasta ahí todo va muy Bien).
Cuando genero el JAR, pongo el reporte y lo ejecuto(el jar) en windows también lo muestra.
El problema es que yo trabajo con linux y se supone que debe funcionar en ambos sistemas operativos pero en linux dice que no encuentra el archivo, de hecho, lo busca en "/home/usuario1" (la carpeta personal del usuario en linux, algo así como "mis documentos") cuando genero el JAR y lo ejecuto.
¿Por qué la dirección "/reporte.jasper" en windows significa "reporte.jasper dentro de la carpeta de la aplicación" y en linux significa "reporte.jasper dentro la carpeta personal del usuario"?(Es una forma de decirlo)
¿Cómo debo especificar o digitar la ubucacíon del reporte de tal modo que estando este ubicado en la raíz de la aplicación la ubique tanto en windows como en linux?

1 respuesta

Respuesta
Si usas algo como esto System. GetProperty("user.home") siempre será la ruta del usuario sea el sistema operativo que sea
Hola ya probé con System.getProperty("user.dir") y System.getProperty("user.home")
Pero sigue sin funcionar en linux
Luego le puse la siguientes lineas
JOptionPane.showmesagedialog(this,"user.dir");
JOptionPane.showmesagedialog(this,"user.home");
En linux los dos mensajes que me mandó no hacían referencia al directorio donde se encuentra
El jar (la carpeta "dist" sí se compilara con NetBeans).
En windows sí me devolvío la dirección de la carpeta de la aplicacíon sin importar donde
La pusiera
Los mensajes(ambos mensajes en linux) me devolvieron "/home/usuario1"(la carpeta personal el usuario, más no lo que yo necesitaba).
Lo que pretendo hacer es que sin importar desde donde ejecute yo el jar(tanto en linux como en windows)
A la hora de llamar los recursos(el reporte y el archivo de sqlite que están en la misma carpeta que el jar y la carpeta lib)
Este la encuentre, es decir, que la aplicación sea totalmente portable.
En windows funcionó lo queme dijiste y en linux no
¿Por qué pasa esto?
¿Hay alguna otra alternativa para resolver el problema en linux?
Prueba a que la ruta empiece por "./" creo que te valdrá en ambos sistemas.
Suerte y ya me dirás

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas