Salut tous,
Je veux appeler un document pdf lors d'un simple clic sur un bouton de mon application implémentée en java.
Est ce qu'il y a quelqu'un qui peut m'aider? Comment faire SVP??
Merci d'avance..
Salut tous,
Je veux appeler un document pdf lors d'un simple clic sur un bouton de mon application implémentée en java.
Est ce qu'il y a quelqu'un qui peut m'aider? Comment faire SVP??
Merci d'avance..
salut.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 String[] cmd= {"chemin_complet_exécutable_acrobat_reader \\ comme séparateur","ton_fichier.pdf"}; Runtime.getRuntime().exec(cmd);
Si tu veux ouvrir le fichier avec l'application par défaut du système et que tu as une version de JavaSE 6, ou plus, la meilleure solution est d'utiliser la classe Desktop.
Tu peux également utiliser la bibliothèque JDIC(bibliothèque native)
Sinon il te faut utiliser Runtime.exec() pour appeller les commandes systèmes "cmd /c start", "open", "xdg-open" suivant ton système (respectivement windows, macos x et linux).
J'ai essayé par curiosité avec un pdf, un doc ou un txt, mais aucun résultat.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2Si tu veux ouvrir le fichier avec l'application par défaut du système et que tu as une version de JavaSE 6, ou plus, la meilleure solution est d'utiliser la classe Desktop.
Malgré que j'obtienne true true en sortie...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public static void main(String[] args) throws IOException { System.out.println(Desktop.isDesktopSupported()); System.out.println(Desktop.getDesktop().isSupported(Action.OPEN)); Desktop.getDesktop().open(new File("C:\\a.txt")); }
J'ai essayé par curiosité avec un pdf, un doc ou un txt, mais aucun résultat.Si tu veux ouvrir le fichier avec l'application par défaut du système et que tu as une version de JavaSE 6, ou plus, la meilleure solution est d'utiliser la classe Desktop.
Malgré que j'obtienne en sortie :
true
true
Pour info, je suis sur Win XP SP2 32-bits.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public static void main(String[] args) throws IOException { System.out.println(Desktop.isDesktopSupported()); System.out.println(Desktop.getDesktop().isSupported(Action.OPEN)); Desktop.getDesktop().open(new File("C:\\a.txt")); }
C'est pourtant comme ça que ça marche. Au point où tu en es, je te conseille :
- De vérifier que c'est bien ce programme que tu lances (ça donne quoi si tu ajoutes System.out.println("zorglub") ?)
- De vérifier que tu as un fichier a.txt et non pas a.txt.txt à la racine de C:
Ca m'aide pas trop... Je pense que l'api doit être buggé selon les versions des OS, l'antivirus, les firewalls ou encore les applications opèrant sur les fichiers.
Sinon le fichier existe bel et bien.
Pour le montrer :
J'obtiens 3 true maintenant ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 System.out.println(Desktop.isDesktopSupported()); System.out.println(Desktop.getDesktop().isSupported(Action.OPEN)); System.out.println(new File("C:\\a.txt").exists()); Desktop.getDesktop().open(new File("C:\\a.txt"));
En testant ca
mon fichier s'ouvre bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Runtime.getRuntime().exec("cmd.exe /c C:\\a.txt");
J'ai regardé sur Google et apparemment, d'autres personnes ont le même problème :
-http://java.itags.org/java-core-gui-apis/32249/
-http://forums.sun.com/thread.jspa?threadID=5338022
-http://forums.java.net/jive/thread.j...ssageID=198634
En tous les cas, ce n'est pas une api que je préconiserais pour une appli en production vu sa fiabilité...
Bonsoir,
Merci tous pour toute information. Vraiment super cette intéraction
@thebloodyman: J'ai suivi votre démarche Mr. mais le système n'a pas accepté cette ligne:
Le problème s'était avec OPEN. Est ce que vous pouvez svp m'expliquer mieux que c'est cet OPEN?System.out.println(Desktop.getDesktop().isSupported(Action.OPEN));
Remarque: en testantrien n'a passé. Je sais pas s'il me faut quelques conditions avant!!Runtime.getRuntime().exec("cmd.exe /c C:\\a.txt");
Merci beaucoup
Ok ça bien marchait en utilisant ce lien http://forums.sun.com/thread.jspa?threadID=5338022
Mai comme même merci de me répondre à ma précédente question..
Desktop.getDesktop().isSupported(Action.OPEN)) teste si l'action d'ouvrir un fichier est supportée par le système d'exploitation en cours d'utilisation.
Si c'est supportée elle te renvoie true, sinon false.
Tu as la documentation ici :
http://java.sun.com/javase/6/docs/ap...t/Desktop.html
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager