IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI et Outils pour Java Discussion :

Problème locale avec Launch4J


Sujet :

EDI et Outils pour Java

  1. #1
    Membre averti

    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 466
    Points : 333
    Points
    333
    Par défaut 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 : 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 ?

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 466
    Points : 333
    Points
    333
    Par défaut Pb résolu
    Je me réponds à moi-même.
    Mon problème est résolu.
    Pourquoi JOptionPane.showConfirmDialog utilisait parfois la Locale et parfois pas pour ses boutons yes/no/cancel ?
    Donc dans "Eclipse" et "java -jar monprogramme.jar" : boutons en français.
    En cliquant sur le ".jar" ou en cliquant sur le ".exe" obtenu via launch4J, boutons an anglais.
    En fait j'avais plusieurs Java installés sur ma machine et ce n'était pas le même qui était utilisé à chaque fois.

    J'ai donc tout réinstallé proprement (OpenJDK 15) et j'en ai profité pour mettre à jour Eclipse.
    Maintenant tout est en anglais, ce n'est pas vraiment ce que je voulais mais au moins il y a de la cohérence là-dedans.

    J'ai aussi modifié le programme et maintenant les boutons sont en français
    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
    33
    34
    35
    36
    37
     
    import java.util.Locale;
     
    import javax.swing.JOptionPane;
    import javax.swing.UIManager;
     
     
    public class Test 
    {
     
    	public static void main(String[] args) 
    	{
    		UIManager.put("OptionPane.yesButtonText", "Oui");
    		UIManager.put("OptionPane.noButtonText", "Non");
    		UIManager.put("OptionPane.cancelButtonText", "Annuler");
    //		System.out.println(JOptionPane.getDefaultLocale());
    //		// On change la locale par défaut de la JVM : ça ne marche pas
    //		java.util.Locale.setDefault ( java.util.Locale.FRENCH ) ;
    //		 
    //		// On change la locale par défaut du LookAndFeel : ça ne marche pas non plus
    // 		javax.swing.UIManager.getDefaults().setDefaultLocale ( java.util.Locale.FRENCH ) ;
    //		 
    //		// On change la locale par défaut des nouveaux composants : ça ne marche pas non plus
    //		javax.swing.JComponent.setDefaultLocale ( java.util.Locale.FRENCH) ;
    //		Locale locale = new Locale("fr","FR"); 
    //		JOptionPane.setDefaultLocale(locale);
    //		System.out.println(JOptionPane.getDefaultLocale());
    //		System.out.println(JOptionPane.getDefaultLocale());
    //		//on utilise une instance de JOPtioPane : ça ne marche pas non plus
    //		JOptionPane jop = new JOptionPane();
    //		jop.setLocale(Locale.FRENCH);
     		int n = 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, null);
    		System.out.println("fini " +  n);
    		System.exit(0);
    	}
    }
    Maintenant je m'attaque au fait que LaunchJ ne semble supporter que les versions Java entre 1.6.0 et 1.8.9. Ce sera le sujet d'un prochain message.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de librairie avec Launch4j
    Par AASProni dans le forum Général Java
    Réponses: 1
    Dernier message: 05/06/2014, 19h06
  2. Problème d'exécution de mon programme avec Launch4J
    Par Mario Cayer dans le forum Général Java
    Réponses: 5
    Dernier message: 15/12/2013, 20h35
  3. Problème avec Launch4j
    Par zpico dans le forum Débuter avec Java
    Réponses: 0
    Dernier message: 21/08/2013, 15h44
  4. Problème de création de lanceur avec Launch4j
    Par Lilibess dans le forum Général Java
    Réponses: 8
    Dernier message: 20/08/2013, 16h33
  5. Problème avec Launch4j
    Par afrikha dans le forum EDI et Outils pour Java
    Réponses: 3
    Dernier message: 30/04/2007, 19h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo