2012-01-22 9 views
7

Cuando exporto mi código como JAR ejecutable desde eclipse, faltan todos los archivos que he configurado como imágenes de botón y otros archivos aunque estén realmente en el JAR . He agregado getClass().getResource en frente de los archivos, pero cuando trato de ejecutar el JAR, ¿nada sucede, alguna sugerencia?JARs de Runnable faltan imágenes/archivos (recursos)

+2

Por favor, muéstranos un código real, así como una lista de los contenidos de tu archivo JAR que muestra las rutas. – ziesemer

Respuesta

21

Parece que no está poniendo sus cosas en el buen sentido. Con el fin de hacer que funcione, siga estos pasos:

  1. Haga clic con el Project en Project Explorer Tree.
  2. Vaya a New -> Source Folder y luego proporcione Name al Source Folder.
  3. Ahora agregue manualmente sus cosas a este Source Folder creado por usted, como si desea agregar imágenes y luego haga un New Folder, visitando manualmente este Source Folder a través de File System.
  4. Denomine este New Folder como y copie sus imágenes a este Folder.
  5. Ahora regrese a su Eclipse IDE y Refresh su Project desde el Explorador de proyectos, haciendo clic derecho en su proyecto, aquí podrá ver su contenido agregado ahora después de la actualización.

Ahora, para acceder, diga cualquier imagen, la usará.

getClass().getResource("/images/yourImageName.extension"); 

que devolverá un objeto URL. Recuerde el first forward slash, en este caso, ya que se puede acceder a lo que está dentro de su carpeta de origen con la ayuda de esto, en términos más simples. Ahora cuando ejecute su proyecto, el contenido de esta carpeta fuente se agregará automáticamente a la carpeta bin y cuando cree un jar ejecutable, se podrá acceder a las cosas dentro de su carpeta fuente tal como están.

1

La ruta debe ser la correcta para el recurso.

Para que "foo.gif" esté en la raíz del contenedor, debe consultarlo usando "/foo.gif".

Si el programa funciona correctamente después de una limpieza y reconstrucción completas, pero falla como un contenedor, lo más probable es que no tenga los archivos incluidos en el contenedor.

0

Trate de colocar las carpetas en el contenedor de la misma forma que las obtuvo en el programa. Coloque los mismos recursos en los mismos lugares que los tiene en el proyecto. El jar hará referencia a ellos de la misma manera que en tu compilador.

0

Necesita obtener las imágenes usando stream como este - this.class.getClassLoader(). GetResourceAsStream ("test.jpg") y asegúrese de que las imágenes estén presentes en el contenedor al que hace referencia.

0

Como dijo nIcE cOw, solo necesita crear una carpeta de origen en el árbol del Explorador de proyectos. Todos los archivos dentro de esa carpeta estarán en la carpeta del proyecto raíz.

para referirse a ellos, debe escribir su nombre proyectos recortar el nombre del archivo, ya que:

getClass().getResource("ProjectName/image.extension");

espero que esto ayude!

Cuestiones relacionadas