Rutas relativas en java y windows
Buen dia, espero me puedan orientar en un problema que tengo.
Mi problema es el siguiente: estoy haciendo un sistema en javafx y en el codigo hago referencia a varias rutas relativas que apuntan hacia archivos, imagenes, etc. Por ejemplo:
(Ruta java) Esta forma solo funciona en java.
Pero cuando creo el instalador y lo instalo sobre windows y no encuentra estas rutas. Lo que hice para que las reconociera fue esto:
(Ruta windows) Esta forma funciona ya que esta instalado el sistema.
El problema es que es un sistema que cada vez se van desarrollando mas funcionalidades por lo cual tiene que estar haciendo referencia a las rutas de java para que compile el sistema en desarrollo. Hay alguna forma de poner las rutas relativas y que sean reconocidas tanto en java como en windows?
Agradesco de antemano cualquier ayuda.
- javier23's blog
- Inicie sesión o regístrese para enviar comentarios
Comentarios
Cuando dices: "Funciona en
Cuando dices: "Funciona en Java" te refieres a cuando estas en tu IDE? Como generas el instalador?
Al parecer lo único que pasa es que tu instalador pone el directorio de trabajo al mismo nivel que el proyecto. Bastaría que tu instalador copiara también la estructura de directorios y todos los recursos para que así cuando lo tengas que instalar en otra máquina encuentres las imagenes.
Suena a que tu "instalador" lo que hace es compilar las clases y ponerlas en algún directorio ( quizá classes/ que es hermanos de src/ por eso cuando lo ejecutas instalado sube un directorio y luego va a src )
Si, cuando digo funciona en
Si, cuando digo funciona en java me refiero cuando estoy en el IDE. Genero el instalador usando el programa "Inno setup compiler". Esta copiando toda la estructura del proyecto incluso en la carpeta que queda instalada ( C:\Program Files (x86)\Mi proyecto ) tiene la misma estructura que en el IDE.
JSP
Pienso que tu problema es sacar la ruta de contexto de tu aplicación... yo no uso JavaFX por lo tanto desconozco si puedas aplicar lo que te comento a continuación...
Yo utilizo el contexto que va desde el JSP para trabajar con la conexion a la BD y a conseguir la ruta de mis items así....
tengo una clase llamada funciones.java
en el cual tengo el siguiente método.
funciones.java
return rqt.getContextPath().equals("/")? "": rqt.getContextPath();
}; // getContexto
creo un Bean de mi funciones.java
<jsp:useBean id="xUtil" class="sia.beans.utilerias.funciones" scope="session"/>
y lo invoco así para tener el contexto de mi aplicación sobre el mismo JSP usando el request de la página, que es la ruta donde se ejecuta mi aplicación en el servidor.
<%=xUtil.getContexto(request)%>
si no usas beans pues crea una instancia de la clase y utiliza el método...
Funciones funcion=new Funciones();
contexto=funcion.getContexto(request);
para el caso implementa esa función getContexto() y creo que con eso se resuelve lo del context...
Ese getContexto() te regresa una ruta que es la raíz de tu aplicación, ya de ahí tu partes para agregarle el directorio correspondiente, pero en base a lo que te regresa esta función.
Échate un clavado a HttpServletRequest
Espero haberte ayudado.