Partage
  • Partager sur Facebook
  • Partager sur Twitter

Associer un type de fichier à un programme java

Sujet résolu
    22 février 2012 à 20:45:34

    Bonjour,

    Je souhaite réaliser un programme de dessin (comme paint). L'idée est qu'en double cliquant sur un fichier .png, celui-ci s'ouvre à partir de monpaint.jar (après avoir spécifié à mon système d'exploitation que les fichiers png s'ouvrent avec monpaint.jar).
    Cependant, je ne sais pas comment récupérer l'information (ie le chemin) du .png cliqué. J'ai pensé à utiliser les arguments en ligne de commande mais cela ne semble pas fonctionner.
    Savez-vous comment procéder?

    Merci !
    • Partager sur Facebook
    • Partager sur Twitter
      23 février 2012 à 9:47:34

      Le nom du fichier choisi est toujours dans args[0] s'il y en a un. Pas d'exception possible.

      Si tu as déjà créé l'association, tu as probablement fait une erreur dans les valeurs enregistrés dans la BDR et c'est sans doute pour cette raison que le nom du fichier n'est pas transmis correctement.
      • Partager sur Facebook
      • Partager sur Twitter
        23 février 2012 à 19:48:15

        Si tu veut qu'il s'ouvre toujours avec ton logiciel et qu'il soit dans le menu contextuel, tu créer ton .EXE (avec les args) et tu fait ouvrir avec/parcourir.... Là, tu sélectionnes ton .EXE et il est dans ton menu !
        • Partager sur Facebook
        • Partager sur Twitter
          23 février 2012 à 20:57:03

          Ce n'est pas forcément nécessaire de générer un .exe à partir du .jar pour associer son programme à un type de fichier.
          • Partager sur Facebook
          • Partager sur Twitter
            27 février 2012 à 19:01:51

            Je m'étais dit que je verrais plus tard mais me re-voilà vu que je ne comprends pas comment résoudre mon problème. Je viens de faire un test avec ce bout de code :

            class Test{
               public static void main(String args[]){				
                  if(args.length>0)
                     System.out.println(args[0]);
               }
            }
            


            que j'exporte en un fichier jar executable nommé test.jar.

            Sur mon bureau(Windows vista), je crée un fichier "test.test". Puis je fais clic droit, Propriétés, Modifier (en face du label "s'ouvre avec") et je sélectionne "test.jar" comme programme pouvant ouvrir les fichiers .test. Après avoir validé, je double-clic sur test.test et j'obtiens une erreur : "C:\Users\....\Desktop\test.test n'est pas une application Win32 valide.".

            En revanche j'ai fait un petit fichier test.bat, voici son code :
            java -jar test.jar %1
            pause
            


            Je défini test.bat comme le logiciel qui permet l'ouverture des fichiers .test. Je double clic et j'obtiens ce que je souhaite : le .jar est exécuté car le chemin du fichier est bel et bien affiché.

            Maintenant je voudrais faire de même sans avoir à passer par un fichier .bat (ou autre) et je ne vois pas comment.
            • Partager sur Facebook
            • Partager sur Twitter
              27 février 2012 à 21:24:26

              Tu ne peux pas le faire en utilisant "ouvrir avec" ou avec les propriétés. Tu dois obligatoirement passer par la base de registres.

              Il faut que tu modifies la commande enregistrée dans la clé HKEY_CLASSES_ROOT\test_auto_file\shell\open\command, et il faut y mettre java.exe -jar fichier.jar "%1", en indiquant les chemins complets vers java.exe et ton jar. Pour les programmes graphiques, tu peux optionnellement utiliser javaw.exe à la place de java.exe pour éviter qu'une console vide s'ouvre en arrière-plan.

              Pour créer une toute nouvelle association qui n'existe pas encore, il faut faire comme ceci :
              1. Créer une clé HKCR\.<extension> et mettre comme valeur par défaut <extension>_auto_file
              2. Créer une clé HKCR\<extension>_auto_file\shell\open\command (créer toute l'arborescence manquante si nécessaire) puis mettre comme valeur par défaut la commande désirée. Ici pour lancer un programme java packagé dans un jar, la commande est java.exe -jar fichier.jar "%1". Ne pas oublier les guillemets autour de %1 sans quoi il y aura des problèmes avec les chemins contenant des espaces.

              Ceci est valable pour 2000, XP, vista et 7. Aucune idée pour windows 8, mais je ne pense pas qu'un grand changement soit prévu.
              • Partager sur Facebook
              • Partager sur Twitter
                27 février 2012 à 21:32:38

                Merci pour ton explication en détails !

                Sais-tu s'il existe des installateurs qui permettent d'effectuer les associations automatiquement ?
                • Partager sur Facebook
                • Partager sur Twitter
                  27 février 2012 à 22:14:09

                  Citation

                  Sais-tu s'il existe des installateurs qui permettent d'effectuer les associations automatiquement ?


                  Avec un script InnoSetup ça doit pouvoir se faire.
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Associer un type de fichier à un programme java

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown