Bonjour
C'est une question apparemment déjà 1000 fois posée, cependant je sèche après 1 après-midi de google.

Quand j'exécute en tant que "application java" depuis eclipse, la fenêtre de l'application avec le gif animé s'affiche bien.

Mais quand j'exporte l'application en jar et que j'exécute le jar, la fenêtre de l'application s'affiche mais sans le gif.

Pourtant,
dans properties/Java Build Path/source : je rajoute bien le dossier /img qui contient le gif.
je vois :
+ microOnde/img
+ microOnde/src

Comme après l'exportation le gif se retrouvera à la racine je change
ImageIcon ic = new ImageIcon("img/sourisquimarche.gif");
par
ImageIcon ic = new ImageIcon("sourisquimarche.gif");

A la 3ième fenêtre de l'export je rajoute la classe qui contient le main.

quand je fais un 7-Zip du jar je vois sur le même niveau :
le dossier principal avec dedans mon java et mon class
sourisquimarche.gif

voici le code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package principal;
import java.awt.*;
import javax.swing.*;
 
public class MicroOndes extends JFrame {
 
	public MicroOndes() throws HeadlessException{
//		pour mettre le titre on appelle le parent qui a un constructeur pervu pour
			super("Mon MicroOndine...");
 
// je dimensionne le frame
			setSize(500, 250);
 
// je met BorderLayout comme plus grand layout			
			setLayout (new BorderLayout());
 
// je met l'image dans la partie centrale
			ImageIcon ic = new ImageIcon("sourisquimarche.gif");
			add(new JButton(ic),BorderLayout.CENTER);
 
// je prepare le sortie propre
			setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
	}
 
	public static void main (String [] args){
		MicroOndes mc = new MicroOndes();
		mc.setVisible(true);
 
	}
 
}
Si vous avez une piste ?