Problème locale avec Launch4J
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:
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:
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:
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'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 ?