# Dateien in PlugIn ansprechen



## manuche (18. Mai 2009)

Hallo,

ich schreibe ein PlugIn welches Datensätze in eine OpenOfficeWriter-Vorlage exportiert (.ott).
Dazu benutze NOA bzw. NOA4e! Aus Bequemlichkeit würde ich Datei gerne zusammen mit dem PlugIn ausliefern. Die Datei soll also direkt in dem PlugIn liegen. Gibt es eine Möglichkeit, Resourcen in einem PlugIn anzusprechen?

Gruß


----------



## Vayu (18. Mai 2009)

```
FileLocator.resolve(PluginActivator.getDefault().getBundle().getEntry("/"))
```

damit bekommst du denn Pfad zu deinem PluginRoot. Von da kannst dann weiternavigieren


----------



## manuche (18. Mai 2009)

Dank dir! Das ist vermutlich genau was ich gesucht habe!!! Werde es morgen gleich testen...


----------



## manuche (19. Mai 2009)

Hallo Vayu!

In welchem Package soll die Klasse PluginActivator liegen? Eclipse bietet mir keinen Import an...

Gruß


----------



## Vayu (19. Mai 2009)

ehemm  das ist dein PluginActivator, von deinem Plugin. kA wie du die genannt hast  ich glaube, standardname ist Activator.

achso ich bin auch davon ausgegangen, dass es ein Eclipse plugin wird.


----------



## manuche (19. Mai 2009)

Was durchaus richtig ist...  Ich hab mich schon gewundert... Klar den normalen Activator kenn ich doch! 
Dank dir!

*edit:
So ich nochmal... Also ich bekomm zwar meine URL und so wunderbar mit diesem Aufruf, allerdings schaffe ich es nicht, meine Datei zu laden bzw zu navigieren...
Sobald ich in das nächste Package will bekomm ich null zurück...

```
Activator.getDefault().getBundle().getEntry("/nextpackage");
```


----------



## Vayu (19. Mai 2009)

wenn du auf Dateien in deinem src-folder zugreifen willst musst du dran denken, dass zur Laufzeit die kompilierten klassen/dateien woanders liegen, als in deinem source folder 

schau in deine build properties wie dein output folder heisst.


```
Activator.getDefault().getBundle().getEntry("/yourOutputFolder/nextpackage");
```

das sollte dann gehen


----------



## Wildcard (19. Mai 2009)

Hmm, FileLocator#resolve würde ich eher nicht benutzen (es sei denn man weiß ganz genau was man will), da es weder die $nl$ Pfade versteht, noch Fragments in die Suche einbezieht.
FileLocator#find ist wohl eher das richtige.


----------



## Vayu (20. Mai 2009)

oh das wusste ich noch nicht. auch was gelernt


----------



## manuche (25. Mai 2009)

Ich hab irgendwie das Gefühl das es nicht geht weil ich mein Plugin als jar-Datei deploye... Liege ich da richtig in der Annahme?
Ich hab es jetzt mit

```
FileLocator.find(Activator.getDefault().getBundle(), new Path ("komplettes.package.bis.zur.datei"), null);
```
und

```
FileLocator.find(Activator.getDefault().getBundle(), new Path ("packageAbActivator.bisDatei"), null);
```
 probiert!


----------



## Wildcard (25. Mai 2009)

Der Trenner ist /, nicht .
Ausserdem solltest du absolute Pfade verwenden, beginnend mit /. Das bezieht sich dann auf das PlugIn Root.


----------



## manuche (25. Mai 2009)

Hups ich glaub ich hab auch mit / gearbeitet allerdings war ich eben so fixiert auf die packages... xD
Ich bin mir jetzt aber nicht sicher, ob ich auch mit nem / angefangen hab


----------



## Wildcard (25. Mai 2009)

Ebenfalls auch checken ob die entsprechende Datei überhaupt in den bin includes ist (also mit ausgeliefert wird).
Das machst du im Manifest Editor in einem der Tabs (Name vergessen).


----------

