2010-10-19 22 views
3

C'est une question spécifiquement sur le développement d'un plugin pour la plate-forme Eclipse:Comment puis-je obtenir le chemin du fichier de l'espace de travail ouvert pour le développement de plugins Eclipse

Je dois mettre en œuvre la persistance sans hardcoding le nom du magasin de données que je suis en utilisant. Je veux pouvoir avoir plusieurs instances d'eclipse avec mon plugin fonctionnant en même temps avec des banques de données indépendantes. Une manière de procéder consiste à utiliser le chemin du fichier de l'espace de travail pour générer/trouver le nom de la banque de données relative à cet espace de travail particulier.

J'ai essayé org.eclipse.core.resources.ResourcesPlugin.getWorkspace(), mais cela ne semble pas être un moyen d'obtenir cette chaîne.

Pour éviter toute confusion, je suis conscient de -data et -showlocation - Je veux accéder au texte de showlocation à l'exécution dans un plugin eclipse. J'utilise eclipse 3.5.2 pour mon projet actuel. J'utilise eclipse 3.5.2.

Merci d'avance!

Répondre

5

Ceci est une liste de nouvelles qui a few years old now, mais vous pouvez essayer:

Platform.getLocation(); 
+0

C'est génial, merci! – Matt

2
Platform.getLocation(); 

est pas le chemin de l'espace de travail (tryed avec Eclipse 4.3 Kepler) comme

@Inject @Named(E4Workbench.INSTANCE_LOCATION) private Location instanceLocation; 

il donnera l'emplacement du dossier de configuration, mais pas l'emplacement de l'espace de travail. Une chose que je trouve cela a fonctionné était:

URL fileURL = FileLocator.find(Platform.getProduct().getDefiningBundle(),new Path(String_file2Locate), null); 

(cela ne fonctionne que pour les produits non pour les plugins et « String_file2Locate » est le chemin du fichier du fichier que vous souhaitez utiliser, à partir de la/racine de votre dossier d'espace de travail)

Ou aussi comme this. (mais vous aurez besoin d'une piqûre avec le nom de votre plugin)

2

Pour Eclipse 3.X, utilisez ResourcesPlugin.getWorkspace().getRoot().getLocation(); après avoir importé le plugin org.eclipse.core.resources.