3 votes

Faire de mon propre éditeur de texte basé sur Java le Text Editor par défaut dans Windows.

J'ai créé un éditeur de texte en Java et je veux en faire l'éditeur de texte par défaut. Tout comme sous Windows où Notepad est l'éditeur par défaut, et dont l'icône s'affiche sur tous les fichiers texte et en double-cliquant sur ces fichiers, les ouvre dans Notepad.

Je veux accomplir la même tâche en faisant de mon éditeur de texte celui par défaut. Faire un clic droit sur un fichier texte et sélectionner mon éditeur de texte comme application par défaut pour l'ouverture des fichiers texte ne résout pas le problème car mon éditeur de texte n'acceptera pas l'entrée de fichier de cette manière. Il est conçu pour accepter l'entrée de fichier uniquement par FileChooser.

Y a-t-il une bibliothèque en Java pour accomplir cette tâche d'accepter l'entrée de fichier de cette manière ?

3voto

soumya Points 203

J'ai créé un éditeur de texte ... veux en faire l'éditeur de texte par défaut...

Déployez-le en utilisant Java Web Start et déclarez un intérêt pour les types de fichiers pertinents dans le fichier de lancement.

..accepte uniquement les entrées de fichiers par FileChooser.

JWS fournit le nom du fichier d'intérêt au main(String[]). Nous pouvons créer un File à partir de la chaîne et y aller à partir de là. Voici une démonstration de l'API JNLP FileService qui déclare un intérêt pour le format de fichier .zzz.

3voto

Si vous préférez ne pas utiliser Java Web Start comme l'a suggéré Andrew et que vous souhaitez apprendre comment Windows gère spécifiquement les applications par défaut, voici un guide rapide :

Lorsque vous faites un "Clic droit -> Ouvrir avec..." et définissez quelque chose comme application par défaut, une valeur de registre est créée dans HKEY_CLASSES_ROOT avec le nom "somefileextension_auto_file" et une clé "/shell/open/command" (donc, HKEY_CLASSES_ROOT\somefileextension_auto_file\shell\Open\command). La valeur de chaîne par défaut de cette clé est la commande shell à exécuter lorsqu'un fichier de type somefileextension est double-cliqué. La valeur par défaut créée ressemble à quelque chose comme "c:\program files\somepath\test.exe" %1 où %1 sera une variable contenant le chemin complet du fichier double-cliqué.

Si vous voulez rendre programmable votre fichier jar l'application par défaut pour une certaine extension de fichier, vous devriez créer la clé de registre à HKEY_CLASSES_ROOT\somefileextension_auto_file\shell\Open\command avec une valeur par défaut similaire à la suivante :

java -jar c:\quelquepart\votreFichierJar.jar %1

et votre programme devrait détecter quand un argument de ligne de commande lui est donné en utilisant public static void main(String[] args)args[1] sera le chemin du fichier qui a été cliqué. Si un argument de ligne de commande est donné, votre programme devrait automatiquement essayer de l'utiliser comme fichier d'entrée.

Remarque : Ceci ne devrait vraiment pas être fait manuellement car Java a été conçu pour être multiplateforme et en tant que tel, il existe des solutions multiplateformes ( https://stackoverflow.com/tags/java-web-start/info ) mais il semble que l'auteur de la question était intéressé par la façon dont Windows gère réellement les applications par défaut. Peut-être que cela aidera un autre lecteur. Qui sait.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X