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

Langage Java Discussion :

commande windows pour recuperer navigateur par défaut


Sujet :

Langage Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 23
    Points : 31
    Points
    31
    Par défaut commande windows pour recuperer navigateur par défaut
    Bonjour @ tous.


    J'ai un programme JAVA qui utilise la classe Runtime pour lancer Firefox sous linux. Par contre sous windows, comment je peux faire pour récupérer le navigateur par défaut et le lancer?

    Merci d'avance pour vos réponses.

  2. #2
    Membre confirmé Avatar de gronono
    Inscrit en
    Novembre 2003
    Messages
    456
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Novembre 2003
    Messages : 456
    Points : 482
    Points
    482
    Par défaut
    Bonjour,

    Si tu utilise Java 1.6, tu as la classe Desktop permettant de lancer le navigateur par défaut. Voir la méthode : browse

    Si tu peux surement regarder le source de la classe et t'en inspirer.


    A+
    Gronono

  3. #3
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 560
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 560
    Points : 15 487
    Points
    15 487
    Par défaut
    D'ailleur sous linux lancer firefox via un Runtime.exec("firefox") n'est pas une solution 100% fiable si tu ne sais pas sur quelle machine ton appli est dépoyée.
    Rien ne garantit qu'il soit installé.

    Si java <1.6 tu peux essayer Runtime.exec("start http://monsiteweb.com/page.html"). Je ne suis pas certain que ce soit valide sur tous les OS

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Uther Voir le message
    Si java <1.6 tu peux essayer Runtime.exec("start http://monsiteweb.com/page.html"), mais je ne suis pas certain que ce soit 100% fiable
    Ça m'étonnerais, start n'est pas une commande windows, il la trouverais où ?

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Cette commande permet à partir d'une fenetre Dos, de lancer le navigateur à l'adresse spécifiée.

  6. #6
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 560
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 560
    Points : 15 487
    Points
    15 487
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    Ça m'étonnerais, start n'est pas une commande windows, il la trouverais où ?

    A+
    Si! C'en est une au moins sous XP (il me semble aussi sous Win98 mais je suis plus certain). Tu m'as fait douter, mais c'est bien un commande standard d'après "help start".
    Ca marchait aussi sur une distrub linux que j'avais essayé mais je ne sais pas du tout si c'est standard

    Ceci dit commec'est une commande windows, il faudra probablement faire "cmd /c start http://site.com/page.html"

  7. #7
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Uther Voir le message
    Ceci dit comme c'est une commande, il faudrait peut être faire "cmd /c start http://site.com/page.html"
    Effectivement, avec cette forme, ça fonctionne

    Merci
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    Effectivement, avec cette forme, ça fonctionne
    Pour rester portable (ce code ne fonctionne que sous les Windows famille NT), il serait quand même préférable d'utiliser JDIC pour du Java < 1.6...



    Sinon un conseil : lorsque vous lancez des applications graphiques via Runtime.exec(), il faut toujours pensez à fermer les flux d'E/S :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Process p = Runtime.getRuntime().exec("cmd /c start http://site.com/page.html");
    p.getInputStream().close();
    p.getOutputStream().close();
    p.getErrorStream().close();
    Certaine application utilisent ces flux pour logger des infos, ce qui pourrait bloquer le programme s'il ne sont ni lu ni fermé...

    a++

  9. #9
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 560
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 560
    Points : 15 487
    Points
    15 487
    Par défaut
    En effet en utilisant JDIC avec un seul code, c'est valide pour la plupart des plateformes.
    Le défaut de JDIC, c'est quand même que ca nécessite de recourir à une library native, ce qu'en général je préfère éviter.

    Dans le cas des navigateur windows, aucun à ma connaissance n'utilise les flux standards, c'est pourquoi, j'ai ommis la fermeture.

  10. #10
    Membre averti Avatar de Chatbour
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 431
    Points : 305
    Points
    305
    Par défaut
    Salut à tous

    Citation Envoyé par adiGuba Voir le message
    Sinon un conseil : lorsque vous lancez des applications graphiques via Runtime.exec(), il faut toujours pensez à fermer les flux d'E/S :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Process p = Runtime.getRuntime().exec("cmd /c start http://site.com/page.html");
    p.getInputStream().close();
    p.getOutputStream().close();
    p.getErrorStream().close();
    Certaine application utilisent ces flux pour logger des infos, ce qui pourrait bloquer le programme s'il ne sont ni lu ni fermé...
    faut-il prendre la même précaution quand on fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Runtime.getRuntime().exec("cmd /c start http://site.com/page.html");
    Merci d'avance..

  11. #11
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Chatbour Voir le message
    faut-il prendre la même précaution quand on fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Runtime.getRuntime().exec("cmd /c start http://site.com/page.html");
    Es-tu sûr de pouvoir affirmer que cette commande n'écrira jamais rien dans dans ses flux de sortie ? Perso je n'en sais rien... surtout que le navigateur lancé pourrait changer d'une machine à l'autre...


    Il faut toujours traiter les flux de sorties du process (et les fermer est une manière de les traiter). Si ce n'est pas fait et que la commande écrit dans ses flux de sortie, elle écrira en réalité dans un buffer (de très petite taille), et lorsque ce buffer sera plein le programme sera bloqué en écriture en attendant que le buffer soit vidé (par l'application Java) blocage puisque ton programme ne traite pas les E/S !


    Plus d'info : Exécuter une application externe en Java


    a++

  12. #12
    Membre averti Avatar de Chatbour
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 431
    Points : 305
    Points
    305
    Par défaut
    Merci beaucoup

  13. #13
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 560
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 560
    Points : 15 487
    Points
    15 487
    Par défaut
    Je viens de voir que pour Linux il y a bien un equivalent standard de la commande start c'est xdg-open.
    Ca serait plus propre que de lancer simplement firefox car tu n'as aucune garantie qu'il soit installé et accessible du path. De plus le navigateur par défaut pourrait très bien être Konqueror, Opéra, Lynx, ... , ou même une autre version de FF installée manuellement.

    Par contre sur Linux, il est important de fermer les flux comme l'explique adiGuba, car quasiment toutes les applications les utilisent.

    Donc soit:
    - Tu utilise JDIC et tu as un seul code
    - Soit tu fais un Runtime.exec("cmd /c start http://url.du.site") pour Windows NT et 9x et Runtime.exec("xdg-open http://url.du.site") sous Linux

  14. #14
    Membre averti Avatar de Chatbour
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 431
    Points : 305
    Points
    305
    Par défaut
    Salut à tous

    Citation Envoyé par Uther Voir le message
    Runtime.exec("cmd /c start http://url.du.site") pour Windows NT et 9x
    à ce que je sais, sous Windows 9x il n'a y pas de cmd, mais plutôt command.com..

    Cordialement..

Discussions similaires

  1. [Débutant] WebBrowser window.open() navigateur par défaut
    Par Dragna_x dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 29/04/2014, 16h04
  2. Réponses: 13
    Dernier message: 09/09/2013, 14h34
  3. [Lazarus] Lancer le navigateur par défaut sous Windows
    Par ChPr dans le forum Lazarus
    Réponses: 3
    Dernier message: 07/09/2009, 19h59
  4. Changer le navigateur par défaut pour msn
    Par stanley dans le forum Messagerie instantanée
    Réponses: 8
    Dernier message: 21/11/2007, 15h52
  5. Client mail / navigateur par défaut
    Par Mimi Bulles dans le forum Web & réseau
    Réponses: 1
    Dernier message: 16/08/2005, 22h40

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