[SOLUCIONADO][Java, IDE Netbeans 6.9] ¿Cómo tener archivos de excel en un .jar?

Iniciado por jfmorenom, 28 Junio 2010, 00:01 AM

0 Miembros y 2 Visitantes están viendo este tema.

jfmorenom

Buenas tardes.
Mi problema es el siguiente. Estoy haciendo una aplicación en Netbeans en la cual trabajo con datos almacenados en 2 archivos de excel y para eso utilizo la librería jxl. Yo cargo esos 2 archivos de la siguiente manera:


this.workbook1 = Workbook.getWorkbook(new File("C:/Documents and Settings/Jhon/Escritorio/Simulador/src/simulador/resources", "datos1.xls"));
this.workbook2= Workbook.getWorkbook(new File("C:/Documents and Settings/Jhon/Escritorio/Simulador/src/simulador/resources","datos2.xls"));


Y perfectamente puedo trabajar con ellos; cuando compilo y ejecuto me da todo perfecto. Y el .jar me funciona perfecto. El problema es caundo llevo mi .jar a otro pc. Ahí la aplicación corre y abre normalmente pero a la hora de acceder a los datos de esos 2 archivos, no me aparecen!. Jugando con los constructores de la clase FILE encontré que si cargo los archivos de manera diferente con rutas parciales (no absolutas como la que puse arriba), ni siquiera me aparecen los datos en el .jar ejecutado en mi propio pc. Lo único que quiero es incluir esos 2 archivos en el .jar y que no dependan de la ruta absoluta, pues necesito ejecutar mi .jar en otro pc.

Gracias por su atención.

Leyer

tienes que crear un paquete he incluir los archivos dentro de el, para que se incluyan en el jar cuando lo exportes.

para acceder a ellos utiliza
Código (java) [Seleccionar]
getClass().getResource("/paquete/nombre.xls");


un saludo.

jfmorenom

Hola amigo, muchas gracias por responder. Te comento que eso ya lo intenté pero no se puede ya que esa instrucción me devuelve un URL y la clasa FILE no tiene constructor con URL. Intenté, además, poner esto creando la carpeta bases dentro de la carpeta "resources" de mi proyecto de NEtbeans:


this.workbook1 = Workbook.getWorkbook(new File(getClass().getResource("/bases/datos1.xls").toURI()));



y me funciona al compilar, cuando le doy a ejecutar me lanza un  NullPointerException.
Copié entonces la carpeta bases en todas partes para ver si depronto había que hubicarla en otro lugar y ahí sí me dio, pero al mirar el .jar, éste intenta abrir, pero se cierra. :(

Gracias por tu colaboración

Leyer

Cita de: jfmorenom en 28 Junio 2010, 19:50 PM
Hola amigo, muchas gracias por responder. Te comento que eso ya lo intenté pero no se puede ya que esa instrucción me devuelve un URL y la clasa FILE no tiene constructor con URL. Intenté, además, poner esto creando la carpeta bases dentro de la carpeta "resources" de mi proyecto de NEtbeans:


this.workbook1 = Workbook.getWorkbook(new File(getClass().getResource("/bases/datos1.xls").toURI()));



y me funciona al compilar, cuando le doy a ejecutar me lanza un  NullPointerException.
Copié entonces la carpeta bases en todas partes para ver si depronto había que hubicarla en otro lugar y ahí sí me dio, pero al mirar el .jar, éste intenta abrir, pero se cierra. :(

Gracias por tu colaboración

Eso lo se. que devueve una url

Yo me referia era que probaras algo asi

Workbook.getWorkbook(getClass().getResource(""));

luego de ver el API

static Workbook getWorkbook(java.io.File file, WorkbookSettings ws)  A factory method which takes in an excel file and reads in the contents.

static Workbook getWorkbook(java.io.InputStream is)  A factory method which takes in an excel file and reads in the contents.



podrias usar tambien

Código (java) [Seleccionar]
Workbook.getWorkbook(getClass().getResourceAsStream("/bases/datos1.xls"));

jfmorenom

Leyer, muchas gracias! ahora si funciona!!!!!!! el que sabe sabe! muchas gracias amigo. Y todo lo que le intenté yo y nada que podía, pero ahora sí jeje ;-)

Leyer

Cita de: jfmorenom en 28 Junio 2010, 21:50 PM
Leyer, muchas gracias! ahora si funciona!!!!!!! el que sabe sabe! muchas gracias amigo. Y todo lo que le intenté yo y nada que podía, pero ahora sí jeje ;-)

;)

Debci