Espacio de trabajo de Eclipse: ¿Debo poner mis imágenes en la carpeta 'src' o 'bin'?

Estoy trabajando en un proyecto en Java y, a veces, todas mis imágenes desaparecieron aleatoriamente de la carpeta bin del proyecto. Se está poniendo muy molesto porque tengo que volver a poner todo cada vez que pasa. Alguien me dijo que no debería poner mis archivos adicionales en bin sino en src. Pero eclipse no lee mis imágenes si las pongo en src, como si no estuvieran allí. ¿Por qué está pasando esto? Gracias.

preguntado el 27 de agosto de 11 a las 20:08

7 Respuestas

Crea una resources carpeta y colóquelos allí. Luego marque esa carpeta como "Carpeta de origen" (clic derecho -> Ruta de compilación -> Usar como carpeta de origen)

Respondido 28 ago 11, 00:08

+1. No soy un gran fanático de tener recursos (imágenes o lo que sea) en la carpeta src, no tienen ninguna razón para estar allí. - Voo

No sé ... ignorar los archivos que coloco dentro de los recursos (o src) solo funciona cuando los pongo en la papelera ... - Rama

Todo lo que ponga en una carpeta de origen va a / bin. Lo acabo de comprobar y funciona. - Bozho

Oh, ahora funciona, el problema era que no estaba administrando las carpetas de Eclipse sino del Explorador de Windows, y causó problemas. - Rama

Siga estos dos pasos. Me funcionó bien en Eclipse Kepler.

  1. Traiga su imagen u otros archivos de recursos a su proyecto Java

    I. Haga clic con el botón derecho del mouse en su proyecto Java y haga: New -> Source Folder. En este ejemplo, llamo a mi carpeta "res".

    ii. Vaya a su explorador de archivos y debería ver esta carpeta "res" en la carpeta raíz de su proyecto Java. Ahora copie o mueva su imagen y otros archivos de recursos a él.

    iii. Ahora vaya a Eclipse y haga clic derecho en esta carpeta "res" y haga: Actualizar. Debería ver estos archivos aparecer en él.

    iv. Ahora compile el proyecto y debería ver que sus archivos de recursos se copian en la carpeta "bin" de destino de compilación.

  2. Ahora en su clase (por ejemplo, su propia clase JFrame como lo indica el this en mi código de muestra a continuación) puede acceder al archivo de recursos y anotar el "/"para indicar la ubicación del archivo en relación con la raíz binaria:

    Image img = new ImageIcon(this.getClass().getResource("/MyImage.gif")).getImage();
    

Otra nota: puede utilizar varias carpetas de recursos de este tipo para organizar sus recursos. Después de la construcción del proyecto, todos van a la carpeta "bin" raíz de destino de la construcción. Y, por supuesto, puede exportar su proyecto como "Archivo Jar ejecutable", luego puede ejecutar su aplicación de forma independiente, ya que todos los recursos se empaquetan automáticamente en su archivo Jar.

Respondido el 21 de enero de 17 a las 19:01

No deberías ponerlos en el bin directorio: debe verse como un directorio de solo salida, que se puede borrar en cualquier momento.

Si utiliza Class.getResource() or ClassLoader.getResource() (o API similares), entonces esperaría que funcione bien desde el src directorio o cualquier otra cosa en su ruta de compilación, asumiendo la configuración predeterminada. Sin embargo, debe verificar la configuración.

Desde el documentos en la ruta de compilación:

Los recursos existentes en las carpetas de origen se copian en la carpeta de salida a menos que la configuración en la página de preferencias Java> Compilador> Construcción especifique que el recurso está filtrado. La carpeta de salida se define por proyecto, excepto si una carpeta de origen especifica su propia carpeta de salida.

Por lo tanto, debe consultar la página de preferencias "Creación" para ver si está filtrando recursos. Si busca en el directorio bin después de compilar, debería poder verlos.

Tenga en cuenta que es posible que desee poner los recursos en su propio directorio solo para fines organizativos; está bien, y puede hacerlo dentro del src directorio o creando otro directorio en la ruta de construcción.

Respondido 28 ago 11, 00:08

Además, es posible que deba actualizar su espacio de trabajo src para que Eclipse se registre (y copie a bin) los archivos de imagen. - Michael Brewer-Davis

Vea si su proyecto tiene una carpeta "res", que significa recursos. Si es así, en esa carpeta debería haber una carpeta "Img". Deberías ponerlos ahí.

Respondido 28 ago 11, 00:08

No ... no hay carpeta "res": / Solo ".settings", "bin", "src" y otros 2 archivos: .classpath y .project. - Rama

para Eclipse, puede crear una carpeta directamente en la carpeta src (o en algunos de su paquete). Luego copie y pegue sus archivos de imagen en la carpeta creada. Si necesita obtener la ruta adecuada hasta la imagen actual, simplemente use Class.getResource ("yourCreatedFolder / yourImage.someExtension")

Respondido 15 Abr '13, 14:04

Tuve el mismo problema, así que simplemente pasé la imagen en las carpetas 'bin' y 'src' en mi caso, tengo este código:

Image image2 = new Image(getClass().getResourceAsStream("IMAGES/Main-icon.png"));

ejecuta la aplicación y funcionará

Respondido 25 Feb 17, 04:02

Convertiría el proyecto en Maven y haría instalar maven.

Respondido el 18 de Septiembre de 17 a las 11:09

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.