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 :

Comment savoir si un fichier est une librairie ?


Sujet :

Langage Java

  1. #1
    Membre habitué Avatar de kkt8
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 472
    Points : 193
    Points
    193
    Par défaut Comment savoir si un fichier est une librairie ?
    Bonjour,

    je récupère une chaine de caractères (le path d'un fichier) et je voudrais savoir si ce fichier est une librairie.
    Comment puis-je m'assurer qu'il s'agit d'une librairie ?

    En dernier recours je testerais l'extension ...

    Merci

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 084
    Points : 7 998
    Points
    7 998
    Par défaut
    Tu veux donc savoir si un fichier JAR est une lib ou un "executable" avec un main ?

    Si oui, il te suffit de chercher apres le manifest qui se trouve dans le jar et de regarde si celui ci contient un Main-Class.

  3. #3
    Membre habitué Avatar de kkt8
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 472
    Points : 193
    Points
    193
    Par défaut
    Bonjour,

    j'ai pas été très claire ... sorry !
    Par code, je récupère une chaine de caractères qui est le path vers un fichier, ce fichier normalement doit être une librairie au sens c du terme.
    Je peux bien sur m'assurer de son extension (*.a ou *.o) mais j'aurai aimé savoir si ya un moyen de s'assurer que ça soit une librairie comme on peut le faire avec un fichier :
    if(object instanceof IBINARY) un truc comme ça ....


    Merci

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 084
    Points : 7 998
    Points
    7 998
    Par défaut
    Ok,

    IBINARY tu le sors de quelle librairie la ?

    Sinon pour verifier que un fichier est d'un type, en general on chercher apres des info dans le fichier (Header). Comme par exemple les fichiers EXE commencent tour par les octets "MZ" (4D5A). Maintenant il existe peut etre des truc tout fait ... mais aucune idée....

  5. #5
    Membre habitué Avatar de kkt8
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 472
    Points : 193
    Points
    193
    Par défaut
    en fait mon message a été déplacé, j'étais au départ sous me forum eclipse, car il s'agit d'un librairie eclipse : package org.eclipse.cdt.core.model;

    Sur événement (ici clique sur un fichier dans un projet) tu peux récup le fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Object object = event.getApplicationContext();
    if ((object != null) && (object instanceof EvaluationContext)) {
    	IEvaluationContext ec = (IEvaluationContext)object;
    	object = ec.getDefaultVariable();
    	if (object != null) {
    		List<Object> list = (List<Object>) object;
    		for (Object o : list)  {
    			if (o instanceof IBinary) {....

  6. #6
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 084
    Points : 7 998
    Points
    7 998
    Par défaut
    Oula je ne saurai t'aider la dessus désolé

  7. #7
    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
    Salut,


    Tu peux tenter du reverse-engineering en affichant toutes les classes et interfaces implémentée par l'objet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    	public static void printAll(Object o) {
    		Class<?> c = o.getClass();
    		while (c != null) {
    			// On affiche la classe :
    			System.out.println(c);
    			// Et toutes les interfaces déclarées :
    			for (Class<?> i : c.getInterfaces())
    				System.out.println("\t" + i);
    			// Puis on passe au parent :
    			c = c.getSuperclass();
    		}
    	}
    Ensuite à toi de voir si quelque chose correspond


    a++

  8. #8
    Membre habitué Avatar de kkt8
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 472
    Points : 193
    Points
    193
    Par défaut
    Salut !

    rhaaa, déception je recupère un File ... donc c'est mort !
    Tant pis il me reste encore la possibilité de tester l'extension, c'est moins clean mais bon ...

    Merci pour le conseil, j'utilise souvent ce genre de "truc" mais là j'avais ne pas y avoir pensé ... la honte sur moi !

    a+, bonne semaine !
    chris

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

Discussions similaires

  1. Comment savoir si le fichier est une image
    Par MaitrePylos dans le forum Ruby on Rails
    Réponses: 15
    Dernier message: 10/05/2007, 15h31
  2. Réponses: 28
    Dernier message: 29/07/2006, 16h04
  3. comment savoir si un fichier est un lien symbolique?
    Par trotters213 dans le forum C++
    Réponses: 2
    Dernier message: 02/12/2005, 12h55
  4. Comment savoir qu'un fichier est modifie
    Par moniphal dans le forum Langage
    Réponses: 2
    Dernier message: 02/10/2005, 10h26
  5. Unix - Comment savoir si un fichier est ouvert
    Par freddyboy dans le forum C
    Réponses: 7
    Dernier message: 06/10/2004, 15h53

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