Laburo España: 250.000 ofertas de empleo
Servicio Técnico

Servicio Técnico

Martes, 30 de septiembre de 2008

Ficheros dentro del ejecutable .jar

Usar las rutas relativas en java, incluso usando un IDE como Netbeans no es fácil. Java es muy potente para el acceso a todo tipo de ficheros estén donde estén y con independencia del sistema operativo. Pero esa potencia lleva una cierta complejidad. 

Los ficheros .jar son ejecutables de java que pueden contener todo tipo de ficheros que use el programa. Así, un icono de un botón que esté incluido en el .jar se puede colocar con ayuda del método getResources, pero un fichero de texto plano o un fichero de sonido no pueden ser cargados de la misma manera ya que el método file() no acepta URLs. 

En este artículo podremos ver una manera de poder tener ficheros de sonido en un .jar y cómo abrirlos. Usaremos algunas cosas de Netbeans, pero creo que se puede exportar a otros IDEs o hacerlo directamente "a mano".

Si usamos Netbeans, pondremos los archivos de sonido dentro de una carpeta que esté dentro del proyecto. Luego con el botón derecho en el proyecto -> build. Así quedará dentro del .jar. 

Para poder abrirlos tendremos que hacer un fichero temporal, pasar a este toda la información de original y luego abrirlo. Para ello podemos usar el método getResourceAsStream 

Este es el código aproximado:

File temp = File.createTempFile("sonido", ".wav");
InputStream is = this.getClass().getResourceAsStream("nombre del fichero");
FileOutputStream destino = new FileOutputStream(temp);
FileWriter fw = new FileWriter(temp);
byte[] buffer = new byte[512*1024];
int n;
while ((n = is.read(buffer)) != -1)
destino.write(buffer, 0, n);

 Faltaría añadir try{}catch() y poner la ruta del fichero.  




Referencias

URL para referencias

Comentarios

Comentar


Recordar datos

Acerca de

Este blog nació con la idea de exponer las soluciones que un informático ha dado los problemas que le van saliendo. No se trata de extensos manuales teóricos, sino de soluciones concretas a problemas concretos. Sin embargo, estas soluciones pueden ser fácilmente extrapolables a otros problemas similares.

Mi blog personal es La web del jose

Búsqueda

 

Categorías

General (1)
Perifericos (4)
Software (5)
geek (0)
hardware (11)
internet (1)
programación (8)

Archivos

Noviembre 2009 (0)
Noviembre 2008 (1)
Septiembre 2008 (1)
Abril 2008 (1)
Marzo 2008 (4)
Febrero 2008 (6)
Enero 2008 (5)
Septiembre 2007 (1)
Marzo 2007 (2)
Noviembre 2006 (1)
Agosto 2006 (4)
Julio 2006 (4)

Enlaces útiles

Noticias 3D
Foros del Web
Alternativas Libres

Sindicación

RDF 0.91
RSS 1.0
XML/RSS 2.0
Atom 0.3


Estadísticas públicas:

Créditos

Diseñado por Manu Contreras
Creative Commons License

LaInformacion.com lainformacion.com - Medio Oficial de los Premios Bitacoras 2009