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

Eclipse Java Discussion :

connaitre le chemin du repertoire ou se trouve mon plugin


Sujet :

Eclipse Java

  1. #1
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 146
    Points : 150
    Points
    150
    Par défaut connaitre le chemin du repertoire ou se trouve mon plugin
    Bonjour,

    Afin de mettre au point un systeme de mise à jour par svn de mon plugin, j'aimerai connaître le chemin du repertoire où se situe le (ou les) jars de mon plugin (par exemple "/c:/program files/eclipse/plugins/").

    Merci d'avance.
    Best Web Design Software ever - http://tweakstyle.com

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 137
    Points : 160
    Points
    160
    Par défaut
    Salut,

    Je ne suis pas sûr d'avoir bien compris, tu souhaites connaitre le répertoire des sources de ton plugin ou le répertoire où sont installé tes plugins ?

  3. #3
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 146
    Points : 150
    Points
    150
    Par défaut
    Je voudrais connaitre le repertoire ou est installé mon plugin.
    Best Web Design Software ever - http://tweakstyle.com

  4. #4
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    Bonsoir,
    pour recuperer le chemin de ton plugin il faut que tu utilises la méthode getStateLocation
    de ton instance plugin. cette méthode retourne un IPath.
    Voici un exemple qui recupere sous forme de string le chemin ou est
    installé ton plugin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    plugin.getStateLocation().toFile().getAbsolutePath();
    ou plugin est de type org.eclipse.core.runtime.Plugin

    Angelo

  5. #5
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 146
    Points : 150
    Points
    150
    Par défaut
    j'ai déja essayé cette méthode mais malheureusement ca ne renvoie pas le chemin du plugin mais celui d'un repertoire dans les metadata du workspace ou mon plugin peut mettre des fichiers à loisir. (cad workspace\.metadata\.plugins\mon.nom.de.plugin)

    extrait de la javadoc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    	 * Returns the location in the local file system of the 
    	 * plug-in state area for this plug-in.
    	 * If the plug-in state area did not exist prior to this call,
    	 * it is created.
    	 * <p>
    	 * The plug-in state area is a file directory within the
    	 * platform's metadata area where a plug-in is free to create files.
    	 * The content and structure of this area is defined by the plug-in,
    	 * and the particular plug-in is solely responsible for any files
    	 * it puts there. It is recommended for plug-in preference settings and 
    	 * other configuration parameters.
    Moi j'ai besoin du répertoire ou est placé mon plugin (cad généralement eclipse\plugins\).
    C'est pour mettre en place un systeme de configuration/mise à jour de mon plugin à partir de fichiers présent sur un repository svn.

    Merci quand meme pour ton aide.
    Best Web Design Software ever - http://tweakstyle.com

  6. #6
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 146
    Points : 150
    Points
    150
    Par défaut
    j'ai trouvé ca : plugin.getBundle().getLocation() qui renvoie quelque chose qui ressemble à ce que je cherche mais je ne sais pas si ca renvoie toujours la bonne valeur.
    Best Web Design Software ever - http://tweakstyle.com

  7. #7
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    Je t'envoie la fonction que j'utilise pour recuperer le chemin a partir de mon plugin :

    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
     
    /**
             * Return the real path of <code>fileSource</code> which is stored into
             * the plugin.
             * 
             * @param plugin
             * @param fileSource
             * @return
             */
    	public static String getRealPath(Plugin plugin, String sourceFile) {
    		try {
    			//plugin.getStateLocation().toFile().getAbsolutePath();
    			URL urlPlatform = plugin.getDescriptor().getInstallURL();
    			URL fileInPluginURL = new URL(urlPlatform, sourceFile);
    			URL localFileInPluginURL = Platform.asLocalURL(fileInPluginURL);
    			String path = localFileInPluginURL.getPath().toString();
    			if (path.startsWith("/")) {
    				path = path.substring(1, path.length());
    			}
    			return path;
    		} catch (Exception e) {
    			return null;
    		}
    	}
    Pur avoir le chemin de ton plugin tu faits

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PluginUtils.getRealPath(AkrogenPlugin.getDefault(), "")
    le probleme c'est que le code fait appel a ds methods deprecated.

    Angelo

  8. #8
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 146
    Points : 150
    Points
    150
    Par défaut
    merci pour ton code.
    Best Web Design Software ever - http://tweakstyle.com

  9. #9
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 146
    Points : 150
    Points
    150
    Par défaut
    Apparament, depuis eclipse 3.0, les informations ne sont plus stockés dans le Plugin mais dans le Bundle associé.
    Je pense que ta méthode peut se réecrire sans utiliser de méthode déprécié comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public static String getRealPath(Plugin plugin, String sourceFile) {
    	try {
    		Bundle bundle = plugin.getBundle();
    		URL entryUrl = bundle.getEntry(sourceFile);
    		URL fileUrl = FileLocator.toFileURL(entryUrl);
    		String path = fileUrl.toString();
    		if (path.startsWith("/")) {
    			path = path.substring(1);
    		}
    		return path;
    	} catch (IOException e) {
    		return null;
    	}
    }
    en tout cas ca marche pour moi.

    Si tu accède à d'autres plugin avec la méthode dépréciée Platform.getPlugin(String id) : Plugin, alors tu peux maintenant y accéder avec la méthode Platform.getBundle(String id) : Bundle et modifier ta méthode getRealPath pour prendre en paramêtre un Bundle.

    Au passage, le deuxième argument de la méthode substring n'est pas nécessaire.
    Best Web Design Software ever - http://tweakstyle.com

  10. #10
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    Bonjour merci
    beaucoup pour ton code ameliroe.
    Je vais tester ca tout de suite et si ca merche pour mon cas
    je l'utiliserais.

    Angelo

  11. #11
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 146
    Points : 150
    Points
    150
    Par défaut
    Oups, je m'était trompé dans le code, c'est pas la methode toFileURL qu'il faut utiliser mais resolve.
    Et il faut faire un peu plus de traitement ensuite car la méthode FileLocator.resolve(URL url) renvoie une url du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    file:C:\test\eclipse\plugins\com.mon.plugin_1.0.0.jar!/
    Best Web Design Software ever - http://tweakstyle.com

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

Discussions similaires

  1. repertoire ou se trouve mon cloud service sur azure?
    Par leks89 dans le forum Microsoft Azure
    Réponses: 2
    Dernier message: 07/08/2012, 19h39
  2. [Delphi] Comment créer un chemin de répertoire ?
    Par Mickey.jet dans le forum Delphi
    Réponses: 3
    Dernier message: 29/01/2007, 19h43
  3. Réponses: 2
    Dernier message: 26/06/2006, 11h27
  4. [XSLT] Connaitre le chemin d'un noeud
    Par virgul dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 02/03/2006, 14h48
  5. recuperer le chemin du repertoire de la base de donnee
    Par Chromatic dans le forum Access
    Réponses: 5
    Dernier message: 24/02/2006, 15h04

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