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
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.
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);
J'ai essayé de modifier la locale par défaut.
Mais sans succès.
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);
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'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 ?
Partager