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

API standards et tierces Java Discussion :

[Système] Ouvrir un document avec un logiciel défini


Sujet :

API standards et tierces Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 20
    Par défaut [Système] Ouvrir un document avec un logiciel défini
    Bonjour à tous,
    j'ai un petit problème. Je travaille actuellement sur une application java qui devra fonctionner sur la plupart des OS existants. Mon problème est le suivant : je veux pouvoir ouvrir un fichier existant avec le logiciel qui a été défini par l'utilisateur (ex : word, staroffice, rose, eclipse ...). Je connais le répertoire contenant le .exe du logiciel à ouvrir et le nom du fichier à ouvrir sans son extension (ex : sous-système). Connaitriez-vous un moyen de pouvoir lancer le document cible dans le logiciel cible quelque soit l'OS de l'utilisateur ?

  2. #2
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Salut,


    Une petite recherche dans le forum t'aurait diriger vers la librairie JDIC :
    http://www.developpez.net/forums/viewtopic.php?t=428727

    a++

  3. #3
    Membre Expert
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Par défaut
    Citation Envoyé par adiGuba
    Salut,


    Une petite recherche dans le forum t'aurait diriger vers la librairie JDIC :
    Cher adiGuba,

    Ce n'est pas pour défendre TheMorpheus mais j'ai tenté de chercher la réponse sur le forum avec les termes suivants: lancer application externe java.

    Je n'arrive pas à trouver la réponse et en plus, la plupart des liens mes renvoient cette réponse: "Le sujet ou message que vous recherchez n'existe pas".

  4. #4
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par jowo
    Ce n'est pas pour défendre TheMorpheus mais j'ai tenté de chercher la réponse sur le forum avec les termes suivants: lancer application externe java.
    Il ne faut pas hésiter à changer les termes... De plus lorsque la recherche se limite à un langage particulier, il est préférable d'utiliser la Recherche avancée sur le forum en spécifiant le forum General Java, et du coups en évitant les mots génériques comme 'java' qui se retrouve dans 90% des messages...

    Citation Envoyé par jowo
    Je n'arrive pas à trouver la réponse et en plus, la plupart des liens mes renvoient cette réponse: "Le sujet ou message que vous recherchez n'existe pas".
    Je présume que tu utilises la recherche Google... malheureusement Google indexe encore beaucoups de sujet qui ont été délestés à l'époque pour ne pas surcharger le serveur. Ce n'est plus le cas désormais puisque le serveur est nettement plus performant, et du coup la recherche avancée est plus précise...


    Le fait est que j'ai déjà répondu à des questions similaire une dizaine de fois... donc au bout d'un moment ca lasse un peu

    a++

    PS : n'oublie pas que sous Google tu peux toujours voir la page "en cache" lorsqu'elle n'est plus disponible sur le site..

  5. #5
    Membre Expert
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Par défaut
    merci adiGuba pour les trucs et astuces pour la recherche

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 20
    Par défaut
    arf, j'ai essayé ce que tu m'as dit mais ça ne m'ouvre rien.
    En plus, dans le topic référence que tu as mis en lien, la personne veut ouvrir un seul type de fichier .hlp. Moi, les fichiers peuvent avoir n'importe quelle extension. Je connais le chemin d'accès du logiciel cible (en fonction du nom du fichier cible) que je dois lancer mais je ne vois pas comment Desktop.open(Mon Fichier) pourrait me le lancer dans l'application qu'a défini l'utilisateur.

  7. #7
    Membre Expert
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Par défaut
    Peut-on voir ton code?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 20
    Par défaut
    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
                   Properties pProduct = new Properties();
    					// recupere le workspace courant
    					String sPathProperties = PreferencesManager.getInstance().getWorkspace();
    					// recupere le chemin du .properties du projet courant
    					sPathProperties += "\\"+ApplicationManager.getInstance().getCurrentProject().getName();
    					String sPathProduct = sPathProperties+"\\produits\\";
    					sPathProperties += "/documentation.properties";
    					File fileProperties = new File(sPathProperties);
    					File fileProduct = new File(sPathProduct);
    					// charge le fichier
    					pProduct.load(new FileInputStream(fileProperties));
    					// recupere le nom du produit associé
    					String sProduct = pProduct.getProperty(product.getId());
    					// recherche si un nom de produit correspond dans la liste des produits
    					int i = 0;
    					boolean bFind = false;
    					while (i < fileProduct.list().length && !bFind)
    					{
    						String[] sTabProduct = fileProduct.list();
    						if (sTabProduct[i].startsWith(sProduct))
    						{
    							// un produit correspond
    							sPathProduct += sTabProduct[i];
    							bFind = true;
    						}
    						else
    						{
    							i++;
    						}
    					}
    					if (bFind)
    					{
    						File fFoundProduct = new File(sPathProduct);
    						Desktop.open(fFoundProduct);
    						//System.out.println(sPathProduct);
    					}

  9. #9
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par TheMorpheus
    Je connais le chemin d'accès du logiciel cible (en fonction du nom du fichier cible) que je dois lancer mais je ne vois pas comment Desktop.open(Mon Fichier) pourrait me le lancer dans l'application qu'a défini l'utilisateur.
    Desktop.open() ouvre le fichier avec le programme associé sur le système d'exploitation.

    Si tu veux gérer cela toi même il faut utiliser Runtime.exec() en passant le nom du fichier en paramètre (toutefois cela peut dépendre de l'application) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    String[] cmd = new String[2];
    cmd[0] = "chemin_vers_ton_application";
    cmd[1] = "chemin_vers_ton_fichier";
     
    Process process = Runtime.getRuntime().exec ( cmd );
    Bien sûr il faut que ton application prenne en compte ses paramètres...

    a++

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 20
    Par défaut
    Ben justement, j'utilise Runtime.exec() pour ouvrir l'application quand aucun document n'a été créé et ca marche très bien ...

    String[] cmd = new String[2];
    cmd[0] = "chemin_vers_ton_application";
    cmd[1] = "chemin_vers_ton_fichier";

    Process process = Runtime.getRuntime().exec ( cmd );
    Cependant, ce format de commandes n'est pas universel, il marche pour Word par exemple sous Windows mais il plante pour un document starOffice sous Linux ...
    Est-ce que quelqu'un connaitrait une solution plus générique ?

  11. #11
    Membre Expert
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Par défaut
    Il n'existe pas de solution générique.

    A toi de gérer les différentes plateformes (WIN, UNIX, LINUX, MAC, ...).

Discussions similaires

  1. Réponses: 5
    Dernier message: 02/04/2012, 13h44
  2. Ouvrir un fichier avec le logiciel par défaut
    Par prgasp77 dans le forum Débuter
    Réponses: 2
    Dernier message: 22/01/2009, 12h34
  3. Ouvrir des fichiers avec leur logiciel par défaut
    Par SyLvErStOrM dans le forum Langage
    Réponses: 3
    Dernier message: 24/04/2008, 16h56
  4. Ouvrir un document avec un programme spécifié
    Par revline dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 29/08/2007, 21h11
  5. Comment ouvrir une fenetre avec une taille définie
    Par pierrot10 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 03/07/2007, 16h27

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