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

Applications et environnements graphiques Discussion :

Lancer un programme par la console ou en cliquant dessus ?


Sujet :

Applications et environnements graphiques

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 176
    Points : 116
    Points
    116
    Par défaut Lancer un programme par la console ou en cliquant dessus ?
    Bonjour à tous,

    Je me demande quelles sont les différences entre lancer un programme dans la console (./nom_programme) ou le lancer en cliquant dessus dans l'explorateur.

    A priori, je pensais que c'était pareil mais je rencontre un bug assez bizarre.

    J'ai dans mon application une image à charger (l'image se trouve dans le même dossier que mon application).

    Lorsque je lance par la console, pas de problème l'image se charge bien.

    Lorsque je lance en cliquand dessus, rien ne s'affiche !

    (Dans mon programme j'accède à mon image par le chemin d'accés "./nom_image" )

    Merci pour vos réponses !

  2. #2
    Membre éclairé Avatar de valefor
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    711
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 711
    Points : 790
    Points
    790
    Par défaut
    Quand, depuis la console, tu lances ton application, tu t'es placé dans le répertoire qui contient l'image puisque tu fait ./mon_appli.

    Quand tu lances l'appli depuis l'icône, il y a de fortes chances que le chemin courant soit ton home.

    Si c'est toi qui a écrit ton appli, tu peux faire une modif rapide qui consiste à mettre le chemin complet de l'image que tu ouvres. Si ça marche, c'est que c'était bien cela le problème.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 176
    Points : 116
    Points
    116
    Par défaut
    En effet, j'ai essayé de mettre le chemin d'accés complet et plus de problème l'image se charge bien. Merci !

    Mais je suis un peu deçu au sens où je comptais profiter de l'avantage du " ./ " car si je distribue mon application, le chemin d'accès dépendra alors de l'emplacement que choisit l'utilisateur pour l'installer.

    N'y a-t-il pas une solution pour pallier à cela ? (comme par exemple une commande système forçant le répertoire courant à celui de mon application et non home)

    Merci.

  4. #4
    Membre éclairé Avatar de valefor
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    711
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 711
    Points : 790
    Points
    790
    Par défaut
    Je vois plusieurs solutions :
    - Tu analyses la chaine argv[0]. Elle te permet de récupérer la ligne de commande (tu peux faire un printf dans un premier temps pour te rendre compte des différentes façons dont ton programme sera appelé). Cette chaine peux t'aider à générer un nom de fichier avec son chemin complet ou pas...
    - Tu met ton fichier image dans un endroit standard. Par exemple on trouve souvent dans /usr/share ou /usr/local/share des fichiers de ressource. Tu peux aller voir par toi même.
    - Tu prévois une variable d'environnement.
    - Tu prends en paramètre un chemin sur la ligne de commande.

    Il existe peut-être aussi d'autres solutions.
    Tu peux faire un mix de tout ça aussi.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Points : 552
    Points
    552
    Par défaut
    ba tu recupere le pwd de l'app, et apres tout est relatif par rapport a ce path...

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 176
    Points : 116
    Points
    116
    Par défaut
    Citation Envoyé par valefor Voir le message
    Je vois plusieurs solutions :
    - Tu analyses la chaine argv[0]. Elle te permet de récupérer la ligne de commande (tu peux faire un printf dans un premier temps pour te rendre compte des différentes façons dont ton programme sera appelé). Cette chaine peux t'aider à générer un nom de fichier avec son chemin complet ou pas...
    - Tu met ton fichier image dans un endroit standard. Par exemple on trouve souvent dans /usr/share ou /usr/local/share des fichiers de ressource. Tu peux aller voir par toi même.
    - Tu prévois une variable d'environnement.
    - Tu prends en paramètre un chemin sur la ligne de commande.
    Merci pour les solutions possibles mais parmis celles que tu cites j'en élimine 2 pour des raisons de facilité d'utilisation de l'application : l'image dans un endroit standard et le paramètre sur la ligne de commande.

    Récupérer argv[0] marche nickel !

    Pour la variable d'environnement, est-ce "aussi simple" qu'avec argv ou alors beaucoup plus technique ?

    Citation Envoyé par alavoler Voir le message
    ba tu recupere le pwd de l'app, et apres tout est relatif par rapport a ce path...
    Oui, c'est ce que je vais faire avec argv[0] il me suffit de concaténer le chemin d'accés à mes images à ce path !

    Merci à vous

  7. #7
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Points : 4 732
    Points
    4 732
    Par défaut
    Pour la variable d'environnement, est-ce "aussi simple" qu'avec argv ou alors beaucoup plus technique ?
    Pour obtenir une variable d'environement c'est getenv.
    man getenv pour plus d'info.

  8. #8
    Membre éclairé Avatar de valefor
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    711
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 711
    Points : 790
    Points
    790
    Par défaut
    d'ailleur getenv te permet de recuperer le pwd :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char *pwd = getenv("PWD");

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 176
    Points : 116
    Points
    116
    Par défaut
    char *pwd = getenv("PWD");
    Cette commande marche nickel, elle me renvoie directement le path dont j'ai besoin. (/home/.../Programme)
    Comme quoi j'avais un mauvais à priori sur la difficulté d'utilisation des variables d'environnement lol.

    Merci à vous.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 27/04/2013, 18h07
  2. Lancer un programme java en console sous Windows XP
    Par gecko64 dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 17/05/2009, 16h06
  3. Lancer mon programme dans une console, en dehors d'Eclipse.
    Par Pierre8r dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 10/10/2008, 20h14
  4. [débutant] lancer une application par la console
    Par LeBabouin dans le forum Ubuntu
    Réponses: 1
    Dernier message: 29/04/2008, 18h05
  5. Réponses: 2
    Dernier message: 05/12/2003, 11h37

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