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

avec Java Discussion :

Récupérer le nom du programme


Sujet :

avec Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 126
    Points : 66
    Points
    66
    Par défaut Récupérer le nom du programme
    Bonjour
    Je cherche un truc tout bête à savoir dans ma classe main, je cherche à récupérer le nom du programme. Je pourrais l'écrire en dur mais je ne trouve pas ça terrible. J'ai aussi cherché dans la classe System et dans la FAQ sans succès.

  2. #2
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 562
    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 562
    Points : 15 493
    Points
    15 493
    Par défaut
    La question est qu'est ce que tu appelles le nom du programme, car cette notion n'existe pas vraiment en java:
    - Le nom de la classe qui contient le main?
    - Le nom d'un jar qui contient ton programme?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 126
    Points : 66
    Points
    66
    Par défaut
    je crée monFichier.java et en fait j'aimerai récupérer monFichier dans un String.
    Normalement, si je fais les choses correctement c'est aussi le nom de la classe

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 25
    Points : 29
    Points
    29
    Par défaut
    Tu peux faire :

    et ça te sort le nom de la classe (mais le chemin complet avec les packages)

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 126
    Points : 66
    Points
    66
    Par défaut
    J'avais déjà essayé ceci et à la compilation il me retournait ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    non-static method getClass() cannot be referenced from a static context
    		System.out.println(getClass().getName());
    		                   ^
    1 error

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mexique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 328
    Points : 459
    Points
    459
    Par défaut
    Salut,

    Tu peux essayer ceci:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    NomDeLaClasse objet = new NomDeLaClasse();
             System.out.println(objet.getClass().getName());
    Cordialement,

    Dan

  7. #7
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 27
    Points : 23
    Points
    23
    Par défaut
    Bonjour,

    Ton compilateur t'indique que tu souhaite accéder à une méthode d'instance à partir d'une méthode statique.

    Lorsque tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println(getClass().getName());
    Le compilateur sous entend que tu as écrit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println(this.getClass().getName());
    L'usage du this est impossible dans une méthode statique.
    Pour accéder à la méthode getClass() tu dois donc créer ne instance de la classe voulue.

    Voici un petit exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public class Main {
    	public static void main(String[] args) {
    		Main m = new Main(); //Creation d'une instance
    		System.out.println(m.getClass().getName()); //Obtention du nom de la classe
    	}
     
    }

  8. #8
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par danimo Voir le message
    Salut,

    Tu peux essayer ceci:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    NomDeLaClasse objet = new NomDeLaClasse();
             System.out.println(objet.getClass().getName());
    Cordialement,

    Dan
    danimo c'est n'importe quoi. Pour récupérer un class depuis un environnement statique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
             System.out.println(NomDeLaClasse.class.getName());
    mais si c'est pour faire ca autant écrire directement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println("NomDeLaClasse");

  9. #9
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mexique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 328
    Points : 459
    Points
    459
    Par défaut
    >>>> tchize

    Bien entendu, mais je répondais surtout à ce problème en précisant bien:
    "Tu peux faire ceci" et non "tu dois faire...",


    Citation Envoyé par ChipsterJulien Voir le message
    J'avais déjà essayé ceci et à la compilation il me retournait ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    non-static method getClass() cannot be referenced from a static context
    		System.out.println(getClass().getName());
    		                   ^
    1 error
    Cordialement,

    Dan

Discussions similaires

  1. Récupérer le nom du programme
    Par peter27x dans le forum Langage
    Réponses: 3
    Dernier message: 04/01/2013, 17h19
  2. Comment récupérer le nom du fichier sans l'extension ?
    Par altahir007 dans le forum Langage
    Réponses: 16
    Dernier message: 13/11/2009, 13h20
  3. Récupérer le nom du fichier qui a appelé mon programme
    Par newbiedelphi dans le forum Débuter
    Réponses: 3
    Dernier message: 28/04/2008, 22h59
  4. Réponses: 10
    Dernier message: 21/02/2007, 20h16
  5. Récupérer le nom de la machine locale
    Par Jflgb dans le forum C++Builder
    Réponses: 5
    Dernier message: 15/05/2003, 09h25

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