J'ai créé un programme en java et l'ai compilé puis transformé en jar,; puis en exe via launch4J. Il marche parfaitement à un petit détail près.
J'utilise JOptionPane.showConfirmDialog
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
			int option = JOptionPane.showConfirmDialog(null, "Les données ne sont pas sauvegardées,\nvoulez-vous les enregistrer ?", 
					"Arrêt du programme", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, icone);
Sous Eclipse et à partir du jar, les boutons de JOptionPane utilisent la locale, c'est à dire que les boutons sont oui, non, Annuler, mais à partir de l'exécutable j'ai yes, no, cancel.

J'ai essayé de modifier la locale par défaut.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
		JOptionPane.setDefaultLocale(new Locale("fr_FR"));
		int option = JOptionPane.showConfirmDialog(null, "Les données ne sont pas sauvegardées,\nvoulez-vous les enregistrer ?", 
 				"Arrêt du programme", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, icone);
Mais sans succès.

Voici le fichier xml utilisé pour launch4J
Code XML : 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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?xml version="1.0" encoding="UTF-8"?>
<launch4jConfig>
  <dontWrapJar>false</dontWrapJar>
  <headerType>gui</headerType>
  <jar>C:\Mes_Programmes\releves22\releves22.jar</jar>
  <outfile>C:\Mes_Programmes\releves22\Releves22.exe</outfile>
  <errTitle>Erreur au lancement du programme Releves22</errTitle>
  <cmdLine></cmdLine>
  <chdir>.</chdir>
  <priority>normal</priority>
  <downloadUrl>http://java.com/download</downloadUrl>
  <supportUrl></supportUrl>
  <stayAlive>false</stayAlive>
  <restartOnCrash>false</restartOnCrash>
  <manifest></manifest>
  <icon>C:\Mes_Programmes\releves22\annexes\images\archives.ico</icon>
  <singleInstance>
    <mutexName>Releves22</mutexName>
    <windowTitle>Releves22 : une session est déjà ouverte</windowTitle>
  </singleInstance>
  <classPath>
    <mainClass>releve22.Releves22</mainClass>
    <cp>.</cp>
  </classPath>
  <jre>
    <path>jre8</path>
    <bundledJre64Bit>false</bundledJre64Bit>
    <bundledJreAsFallback>false</bundledJreAsFallback>
    <minVersion>1.8.0</minVersion>
    <maxVersion></maxVersion>
    <jdkPreference>preferJdk</jdkPreference>
    <runtimeBits>64/32</runtimeBits>
  </jre>
  <versionInfo>
    <fileVersion>1.2.0.0</fileVersion>
    <txtFileVersion>1.2.0.0</txtFileVersion>
    <fileDescription>Relevés baptêmes, mariages, sépultures pour le CG22</fileDescription>
    <copyright>Patrice Henrio</copyright>
    <productVersion>1.2.0.0</productVersion>
    <txtProductVersion>1.2.0.0</txtProductVersion>
    <productName>Relevés baptêmes, mariages, sépultures pour le CG22</productName>
    <companyName></companyName>
    <internalName>Releves22</internalName>
    <originalFilename>Releves22.exe</originalFilename>
    <trademarks></trademarks>
    <language>FRENCH</language>
  </versionInfo>
  <messages>
    <startupErr>Une erreur est survenue lors du lancement de Releves22</startupErr>
    <bundledJreErr>Releves22 est configurée pour utiliser une JRE postérieure ou égale à 1.8.0</bundledJreErr>
    <jreVersionErr>Releves22 nécessite un JRE (Java Runtime Environment)
Java doit être installé sur votre ordinateur.</jreVersionErr>
    <launcherErr>Erreur de JRE. Peut-être vous faut-il réinstaller Java</launcherErr>
    <instanceAlreadyExistsMsg>Une instance du programme est déjà en cours d&apos;exécution</instanceAlreadyExistsMsg>
  </messages>
</launch4jConfig>

J'utilise depuis de nombreuses années et je n'avais jamais été confronté à ce problème.

Quelqu'un a une idée ?