# Frage zum Produktexport von Eclipse RCP



## schuetzejanett (25. Jul 2007)

Hallo,

habe ein eclipse RCP entwickelt. Für diese habe ich mir jetzt ein Product generiert und sie mit dem export manager exportiert. jetzt habe ich einen Programmordner der einen ordner configuration einen ordner plugin eine exe datei und eine productdatei enthält. Wie bekomme ich jetzt einen ordner meines projektes  meine damit den Ordner preferences der meine einstelungsdaten(2 txt Dateien) enthält in diesen Ordner. Aktuell befindet der ordner sich im plugin ordner und da im ordner meines projektes. Möchte aber gerne das die datei beim öffnen des programmordners direkt zu sehen ist, und der anwender wenn sich bestimmte configdateien ändern nicht erst durch die ganze verzeichnisstruktur klicken muss.

Wie mache ich das? Was muss ich in eclipse einstellen das er mir beim erstellen, den ordner da anlegt, wo ich ihn haben wil?


----------



## schuetzejanett (25. Jul 2007)

hallo,

hat das denn noch keiner gebraucht, das er in dem erstellten ordner noch zusätziche unterverzeichnisse benötigt hat?


----------



## foobar (25. Jul 2007)

Du mußt dir ein Feature erstellen und in dem Project in der build.properties die Eigenschaft root die Files auflisten, die später im Rootordner der Eclipsedistri landen sollen.
Lies dir dazu mal die Doku zu PDE-Build durch, da werden alle Properties genau beschrieben.


----------



## schuetzejanett (26. Jul 2007)

hallo, 

ok das werde ich mal versuchen, gibt es einen link zur doku, habe schon gegooglet aber nicht so richtig was gefunde, wo was ausführlich steht.


----------



## schuetzejanett (26. Jul 2007)

Hallo,

habe es jetzt mal versucht, kann jetzt allerdings mein Programm nicht mehr starten und bekomme beim start diese Exeption

```
java.lang.ClassNotFoundException: org.eclipse.core.runtime.adaptor.EclipseStarter
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:501)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:443)
at org.eclipse.equinox.launcher.Main.run(Main.java:1169)
at org.eclipse.equinox.launcher.Main.main(Main.java:1144)
```

Was mache ich falsch bzw muss ich ändern?

Achso das einfügen in den build.properties habe ich so gemacht. aber ich sehe die datei nicht nach dem exportieren.

was ist daran falsch?



```
root = file:prob\preferences.properties
```

Wenn ich das projekt als plugin exportiere geht es,nur das ich dann den ordner nicht habe, wie bekomme ich das jetzt hin, was muss ich noch anders machen.

Habe mir extra ein feature project angelegt und dem das plugin hinzugefügt, aber das gleiche problem.


----------



## foobar (26. Jul 2007)

Also du mußt deinem neuen Feature-Project dein PLugin-Project hinzufügen und dann mußt du deinem Product sagen, daß es jetzt auf features basiert und dann dein neues Feature-Project auswählen. 

Guck mal hier: http://dev.eclipse.org/viewcvs/inde...articles/export rcp apps/article.html?view=co


----------



## schuetzejanett (26. Jul 2007)

Ok also habe mittlerweile herausgefunden, das problem 1 daran liegt das im run confgurations menu keine plugins ausgewähl waren, wähle ich diese aus funktioniert es. Zumindest der erste Start.
Sobald man das programm beendet sind die plugins wieder nicht eingebunden und logischerweise funktioniert es nicht. hatte das noch nie, und habe immer die gleichen einstellungen in der run configuration.
Wer kennt das Problem und kann mir sagen wie ic es lösen kann.

Und was ist an meiner Pfadangabe falsch für den zusätzlichen ordner?


----------



## schuetzejanett (26. Jul 2007)

hallo nochmal bekomme es einfach nicht hin. ich glaube ich verzweifel langsam daran

habe mir jetzt sogar nochmal ein neues plugin project (Template plugin with a view) erstellt um zu testen ob es vielleicht irgendwo an meinem code liegt. Aber immer noch keinen Erfolg.
hier noch mal meine vorgehensweise. 
1. neues feature projekt angelgt , plugin eingebunden sowie alle verwendeten plugins (in Run configuration nachgesehen, also swt, jface, runtime und so was) 
2. config.files ordner in feature project angelegt (inhalt kommt am ende) 
3: in plugin projekt produkt angelegt , welches launch konfiguration vom plugin verwendet. dieses basiert auf features und bekommt das in schritt1 angeletgte feature hinzugefügt sowie die config datei zugeordnet . 
4. teste ich das produkt in eclipse funktioniert es also die app startet.
5: export mit dem exportwizard. 

Doch starte ich jetzt die entstandene exe im programmordner bekomme ich die fehlermeldung "The TestProduct executable launcher was unable to locate its companion shared libary"

Was hab ich den vergessen oder falsch gemacht?

Inhalt der config.ini 

```
osgi.bundles = org.eclipse.core.runtime@2:start, org.eclipse.core.expressions,com.ibm.icu, \
	 javax.servlet.jsp, org.eclipse.core.commands, org.eclipse.core.contenttype, \
	org.eclipse.core.databinding, org.eclipse.core.jobs, org.eclipse.core.runtime, \
	org.eclipse.core.runtime.compatibility.auth, org.eclipse.core.runtime.compatibility.registry, \
	org.eclipse.equinox.app, org.eclipse.equinox.common, org.eclipse.equinox.preferences, \
	org.eclipse.equinox.registry, org.eclipse.equinox.registry, org.eclipse.jface,org.eclipse.jface.databinding \
	org.eclipse.osgi, org.eclipse.osgi.services, org.eclipse.swt, org.eclipse.swt.win32.win32.x86, \
	org.eclipse.ui, org.eclipse.ui.workbench, test,org.eclipse.help

eclipse.product = test.product
```

Brauche wirklich dringend hilfe. Ihr könnt es ja auch mal versuchen um zu sehen ob ihr zum gleichen ergebnis wie ich kommt. verwende eclipse 3.3, falls das was zur sache beiträgt


----------



## foobar (27. Jul 2007)

Du mußt in deinem Feature alle benötigten Plugins als Dependencie angeben, dann brauchste in der Run-Konfiguration nichts mehr zu adden.
Ich habe auch erst vor ein paar Wochen mit Eclipse RCP angefangen und ich kenne diese Probleme ;-) Die Plattform ist schon super, aber sowas nervt tierisch.


----------



## schuetzejanett (27. Jul 2007)

habe sie ja auch bei dependenci angebgeben habe bloß in der run configuration geschaut welche das alles sind damit ich auch keins vergesse. aber es geht halt nicht. Hattest du auch schon mal die oben erwähnte fehlermeldung. Oder kannst du mir mal ein funktionierendes rcp produkt schciken was auf features basiert und dazu das feature. könntest ja vielleicht auch gleich eins der templates verwnden und dann bloß noch den rest schnell machen, so sehe ich vielleicht was ich vergessen habe?

Bin langsam echt am verzweifeln, weil das als plugin exportieren so einfach ist und ich das hier überhaupt nicht zum laufen bringe nicht mal bei einer rcp die nur ne view hat, also wo ich mir sicher sein kann, das an meinem code nix verkehrt ist. Ich versteh das nicht.

Wäre echt nett, wenn das mal jemand mit den feature ausprobieren würde und dann die verwendeten projekte hierein stellt als zip datei, so das ich sie mir dann in ecipse laden und vergleichen kann, weil sonst hab ich echt lkeine idee mehr.

Oder stimmt meine config.ini nicht?


----------



## schuetzejanett (30. Jul 2007)

Hallo,

und kam jemand mal zum testen und kann mir seine erfahrung berichten, oder hat zumindest Zeit es mal zu testen, wäre echt super hilfreich.


----------



## schuetzejanett (8. Aug 2007)

Hallo, habe es hinbekommen, der fehler war das man nicht nur das man im product nicht nur das erzeugte Feature sondern auch noch rcp als feature angeben muss.

Die Datei welche ich in das Rootverzeichnis gelegt habe ist die proberties datei, welche in einem preference dialog angezeigt wird und geändert werden kann. Nun weiß ich nicht wie ich im programm auf die aktuelle datei aus dem rootverzeichnis zugreife, da ich ja nicht weiß wo das rootverzeichnis liegt. 

Wie kann ich auf das rootverzeichnis zugreifen? bei der exportierten variante. Also der nutzer legt den ordner einfach aufs laufwerk C: Dann ist mein Rootverzeichnis Ja C:\DM darin liegt dann die preference datei, die exe der config , der plugins und der feature ordner. Kann ich also in meinem plugin irgendwie herausfinden, wo der nutzer den programmordner gespeichert hat?


----------



## Gast (14. Nov 2008)

wieso lässt du übergaubt irgendwelche properties editieren...
wie wärs mit der eclipsae reference api?


----------



## foobar (15. Nov 2008)

Du kannst dir mit Platform.getInstanceLocation() den Pfad zum workspace holen. Mit Platform.getLocation() bekommst du glaube ich das Rootverzeichnis, da würde ich aber nichts reinschreiben. Sowas gehört eigentlich in den Workspace.


----------

