essaye en mettant "file://" avant le chemin
C'est ce que je vient d'essayer juste avant que je voye ta réponse :
mais cela me donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part FileManager.openURL("file://Utilisateurs/ingencys/Bureau/Rapport_Article.pdf");
le fichier (nommé "Java") s'ouvre et se referme et me donne l'erreur suivante
Par contre si je fais :2009-03-02 14:21:01.604 java[525] LSOpenFromURLSpec() returned -43 for application (null) path /ingencys/Bureau/Rapport_Article.pdf.
cela ouvre toujours le fichier nommé "java" pour le refermé aussitôt mais plus de message d'erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part FileManager.openURL("file:// Utilisateurs/ingencys/Bureau/Rapport_Article.pdf");
il faut mettre file:// avant le chemin, donc je suppose qu'il faut mettre file:///Utilisateurs/ingencys/Bureau/Rapport_Article.pdf avec trois slashs ...
c'est ce que je pensé aussi mais lorsque je fais cela :
j'obtiens le message d'erreur suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part file:///Utilisateurs/ingencys/Bureau/Rapport_Article.pdf
Bizarre tout ça!!2009-03-02 14:31:33.999 java[533] LSOpenFromURLSpec() returned -43 for application (null) path /Utilisateurs/ingencys/Bureau/Rapport_Article.pdf.
Cordialement
c'est fatiguant de proposer des choses qui ne marchent pas , mais un de plus ne fera pas de mal
si tu essayais de faire
si chaque OS se mettait à faire son propre java, ce serait un cauchemar
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 File f = new File("chemin_pdf"); String url = f.toURI().toString(); FileManager.openURL(url);
ji suis pour rien moi si cela fonctionne pas, ça m'énerve tout autant que toi
Donc j'ai essayé :
mais toujours ce message d'erreur (que je comprend pas!! ) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 File f = new File("/Utilisateurs/ingencys/Bureau/Rapport_Article.pdf"); String url = f.toURI().toString(); FileManager.openURL(url);2009-03-02 15:15:59.005 java[573] LSOpenFromURLSpec() returned -43 for application (null) path /Utilisateurs/ingencys/Bureau/Rapport_Article.pdf.
Sinon j'ai essayé ce code :
La classe BrowserControl est la suivante :
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 import java.io.File; import com.apple.eio.FileManager; public class report_2 { /** * @param args */ public static void main(String[] args) { try { BrowserControl bc = new BrowserControl(); File f = new File("/Utilisateurs/ingencys/Bureau/Rapport_Article.pdf"); bc.displayURL("file://" + f.getAbsolutePath()); } catch(Exception err) { System.out.println("err = " + err); } } }
mais bien entendu ceci ne fonctionne pas et m'affiche :
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60 import java.io.IOException; public class BrowserControl { public void displayURL(String url) { boolean windows = isWindowsPlatform(); String cmd = null; try { if (windows) { cmd = WIN_PATH + " " + WIN_FLAG + " " + url; Process p = Runtime.getRuntime().exec(cmd); } else { cmd = UNIX_PATH + " " + UNIX_FLAG + "(" + url + ")"; Process p = Runtime.getRuntime().exec(cmd); try { int exitCode = p.waitFor(); if (exitCode != 0) { cmd = UNIX_PATH + " " + url; p = Runtime.getRuntime().exec(cmd); } } catch(InterruptedException x) { System.err.println("Error bringing up browser, cmd='" + cmd + "'"); System.err.println("Caught: " + x); } } } catch(IOException x) { System.err.println("Could not invoke browser, command=" + cmd); System.err.println("Caught: " + x); } } public boolean isWindowsPlatform() { String os = System.getProperty("os.name"); if ( os != null && os.startsWith(WIN_ID)) return true; else return false; } private static final String WIN_ID = "Windows"; private static final String WIN_PATH = "rundll32"; private static final String WIN_FLAG = "url.dll,FileProtocolHandler"; private static final String UNIX_PATH = "netscape"; private static final String UNIX_FLAG = "-remote openURL"; }
Cordialement.Could not invoke browser, command=netscape -remote openURL(file:///Utilisateurs/ingencys/Bureau/Rapport_Article.pdf)
Caught: java.io.IOException: netscape: not found
c'était pas un blâme, je voulais seulement dire que c'était frustrant que rien ne marche.
dans plusieurs exemples sur le net, ils mettent simplement
sans créer de tableau, peut être que mac n'aime pas la syntaxe avec la création du tableau
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Runtime.getRuntime().exec("open /Utilisateurs/ingencys/Bureau/Rapport_Article.pdf");
je suis à cours d'idée
Je sais bien t'inquiète pas. Mais je suis complètement d'accord avec toi sur le fait que c'est frustrant.c'était pas un blâme, je voulais seulement dire que c'était frustrant que rien ne marche.
Je vient d'essayer mais j'ai aucun message d'erreur mais rien ne se lance. Comme si cela tourné dans le vide.dans plusieurs exemples sur le net, ils mettent simplement
Code :
Runtime.getRuntime().exec("open /Utilisateurs/ingencys/Bureau/Rapport_Article.pdf");
sans créer de tableau, peut être que mac n'aime pas la syntaxe avec la création du tableau
Bizarre!!
Je commence également à être à court d'idée.je suis à cours d'idée
Cordialement
Tu veux ouvrir ton fichier pdf pour en faire quoi ?
Tu vuex afficher son contenu qq part, en extraire des donnees, rediriger ce flow qq part ?
Ce que je souhaite c'est juste ouvrir le document pdf pour voir son contenu c'est tout.
Cordialement
sinon tu pourrais toi même faire un code qui affiche le pdf
regarde du côté de l'api pdf-renderer
et voici un exemple : https://pdf-renderer.dev.java.net/examples.html
La classe Desktop du JDK 1.6 est faite pour ça : http://www.developpez.net/forums/d69...via-code-java/
je crois que c'est ça le problème http://mac.developpez.com/faqs/mac/?...a#Java_Leopard
Bonjour,
après plusieurs recherches j'ai trouvé la faille.
voilà le code qui fonctionne parfaitement :
Merci à tous pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part process = runtime.exec(new String[]{"open", "/Users/ingencys/Bureau/Rapport_Article.pdf"});
Bonjour,
Il est toujours préférable d'utiliser la méthode Runtime.exec avec la signature Process exec(String[] cmdarray) que celle avec la signature Process exec(String command).
Avec la deuxième méthode, Java doit découper lui-même command pour séparer l'exe et les différents arguments.
au fait, c'était quoi le problème??
j'ai remarqué que tu as changé dans le chemin "Utilisateurs" par "Users"
voilà, je me suis rendu compte que ce n'étais pas Utilisateurs mais plutôt Users.au fait, c'était quoi le problème??
j'ai remarqué que tu as changé dans le chemin "Utilisateurs" par "Users"
Tout bête!
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