# Kann exportiertes Programm nicht starten



## Prengepower (3. Dez 2009)

Moin!

Hab jetzt mein Programm exportiert und versucht zu starten... Leider kommt folgender Fehler:


```
!SESSION 2009-12-03 14:10:52.031 -----------------------------------------------
eclipse.buildId=unknown
java.version=1.6.0_17
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=de_DE
Command-line arguments:  -os win32 -ws win32 -arch x86

!ENTRY org.eclipse.osgi 4 0 2009-12-03 14:10:53.156
!MESSAGE Application error
!STACK 1
java.lang.RuntimeException: Application "de.hwrberlin.jemm.application" could not be found in the registry. The applications available are: org.eclipse.ant.core.antRunner, org.eclipse.equinox.app.error, org.eclipse.help.base.infocenterApplication, org.eclipse.help.base.helpApplication, org.eclipse.help.base.indexTool.
	at org.eclipse.equinox.internal.app.EclipseAppContainer.startDefaultApp(EclipseAppContainer.java:242)
	at org.eclipse.equinox.internal.app.MainApplicationLauncher.run(MainApplicationLauncher.java:29)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
```

Woran liegt das? 

Mfg


----------



## dzim (3. Dez 2009)

Ist nicht wirklich vielsagend... Es scheint sich nicht um unaufgelöste Plugin-Dependencies zu handeln, also würde ich darauf tippen, dass du in deinem Produkt die falsche Application ausgewählt hast.
Also schau dort mal nach: dein product-File > Overview > Application - dort wähle über die Combo deine application-ID aus.


----------



## Prengepower (3. Dez 2009)

dzim hat gesagt.:


> Ist nicht wirklich vielsagend... Es scheint sich nicht um unaufgelöste Plugin-Dependencies zu handeln, also würde ich darauf tippen, dass du in deinem Produkt die falsche Application ausgewählt hast.
> Also schau dort mal nach: dein product-File > Overview > Application - dort wähle über die Combo deine application-ID aus.



ja da steht meine drin... wo kann ich denn eine neue erzeugen oder meine überprüfen?!


----------



## dzim (3. Dez 2009)

plugin.xml > Extensions > org.eclipse.core.runtime.products
Dort ein product hinzu, das als application deine ID hat (de.hwrberlin.jemm.application) und noch ein name dazu.
Wenn nicht vorhanden noch die ...applications-Extension hinzu, deine Application-Klasse angeben und fertig.

Also bei mir ging das alles voll automatisch und hat auch nie Probleme gemacht... Mehr können dir vielleicht die Plattform-Spezis hier im Forum sagen...


----------



## reinsle (4. Dez 2009)

Hy,

als Tipp, was ich in solch einer Situation mache, ist das Product mit -console starten. Dann über Short Status (ss) gucken, ob die Plugins aktiv sind. Wenn nicht, kannst du diese per install file://<path_to_.jar> installieren. Wenn hier Fehlermeldungen auftreten, hast du nen ziemlich sicheren Tipp, was sache ist.

Robert


----------



## Prengepower (4. Dez 2009)

reinsle hat gesagt.:


> Hy,
> 
> als Tipp, was ich in solch einer Situation mache, ist das Product mit -console starten. Dann über Short Status (ss) gucken, ob die Plugins aktiv sind. Wenn nicht, kannst du diese per install file://<path_to_.jar> installieren. Wenn hier Fehlermeldungen auftreten, hast du nen ziemlich sicheren Tipp, was sache ist.
> 
> Robert



öhm das versteh ich leider aber wahr nicht... kannst du des vll noch nen bissl ausführlicher darstellen...

thx


----------



## reinsle (4. Dez 2009)

Hy,

also du kannst per -console eine OSGI-Console von Eclipse mit starten. Damit hast du die Möglichkeit, den Status deiner Bundles anzugucken. Das kannst du entweder im Product als Programm Argument oder eben beim exportierten Product mit dem Parameter -console.

Hier auch n paar Beispiele zu:

OSGi with Eclipse Equinox - Tutorial

Wenn du dann in der Console bist, kannst du mit ss (Short Status) dir den Life-Cycle deiner Bundles / Plugins angucken. Sollte dein(e) Anwendungsplugin(s) nicht mit dabei sein, dann hat die OSGI-Runtime ein Problem, dein Bundle zu deployen. Meist fehlt eine Dependencie.

Jetzt hättest du die Möglichkeit, mit install <path> ein belibiges Bundle in den Constext zu deployen. Das kannst du ja auch mit deinem Anwendungsplugin machen.

Beispie:

File: /Temp/de.test.anwendung_0.0.1.jar

Befehl:  install file:///Temp/de.test.anwendung_0.0.1.jar

Jetzt versucht die OSGI-Runtime dieses Bundle in die Runtime zu deployen. Wenn hier was schief geht, dann steht relativ ausführlich da, was sache ist, also meist welche Dependencie fehlt oder ähnliches.

Ich hoffe, du hast das jetzt eher verstanden.

Robert


----------



## Wildcard (4. Dez 2009)

Es gibt die Application de.hwrberlin.jemm.application einfach nicht, also kannst du sie nicht starten.
Wie die Fehlermeldung sagt gibt es nur folgende Applikationen:
org.eclipse.ant.core.antRunner, org.eclipse.equinox.app.error, org.eclipse.help.base.infocenterApplication, org.eclipse.help.base.helpApplication, org.eclipse.help.base.indexTool

Hast du denn eine Applikation mit dieser ID (de.hwrberlin.jemm.application) per Extension Point angelegt?
Wenn ja, hast du das Bundle das diese Application enthählt in dein Produkt installiert? Weißt du was eine Application ist (nur zur Sicherheit...)?


----------



## Prengepower (7. Dez 2009)

Wildcard hat gesagt.:


> Es gibt die Application de.hwrberlin.jemm.application einfach nicht, also kannst du sie nicht starten.
> Wie die Fehlermeldung sagt gibt es nur folgende Applikationen:
> org.eclipse.ant.core.antRunner, org.eclipse.equinox.app.error, org.eclipse.help.base.infocenterApplication, org.eclipse.help.base.helpApplication, org.eclipse.help.base.indexTool
> 
> ...



also eigentlich hab ich das alles gemacht - wird ja automatisch beim anlegen des plug-in projects gemacht... wüsste also nicht was falsch läuft!


----------



## Sonecc (7. Dez 2009)

versuch mal in deiner Product definition (falls vorhanden) das Synchronize
Dann sollte die Application eigentlich eingetragen werden (zum. bei mir geschieht das^^)
Wenn du keine Product definition hast, dann musst du eben deine plugin.xml überprüfen


----------



## Prengepower (7. Dez 2009)

Sonecc hat gesagt.:


> versuch mal in deiner Product definition (falls vorhanden) das Synchronize
> Dann sollte die Application eigentlich eingetragen werden (zum. bei mir geschieht das^^)
> Wenn du keine Product definition hast, dann musst du eben deine plugin.xml überprüfen



hab ich beides schon überprüft und durchgeführt... hilft aber leider nichts  ich hab auch die application eingetragen in der plugin.xml...


----------



## Wildcard (7. Dez 2009)

Prengepower hat gesagt.:


> also eigentlich hab ich das alles gemacht - wird ja automatisch beim anlegen des plug-in projects gemacht... wüsste also nicht was falsch läuft!


Nein, ein Plugin Projekt legt dir keine Application an, das ist eine bewusste Aktion die du selbst durchführen musst. Willst du überhaupt eine eigene Application haben, oder einfach eine bestehende in deinem Produkt verwenden?


----------



## Prengepower (7. Dez 2009)

Wildcard hat gesagt.:


> Nein, ein Plugin Projekt legt dir keine Application an, das ist eine bewusste Aktion die du selbst durchführen musst. Willst du überhaupt eine eigene Application haben, oder einfach eine bestehende in deinem Produkt verwenden?



Ich möchte einfach nur das Plug-In Projekt was ich habe exportieren. Da habe ich nichts weiter hinzugefügt oder so...


----------



## Wildcard (7. Dez 2009)

Warum hast du überhaupt ein Product wenn du nur ein Plugin exportieren willst?
Kurzes Eclipse 1x1
Plugin: ein Plugin halt 
Feature: gruppiert und managed PlugIns
Product: Beschreibt eine RCP Anwendung (installierte Bundles, Konfiguration, native launcher,...)
Application: die Anwendung die letzlich Code ausführt. Eine Application kann zB die Eclipse Workbench, oder eine Swing GUI starten, kann Consolenbasiert sein,...

Also:
Was genau möchtest du überhaupt haben?


----------



## dsplayer (16. Mai 2011)

Ich hatte hier das selbe Problem. Nach unzähligem Probieren habe ich folgende Lösung gefunden:

Das Plugin mit der eigentlichen Funktionalität vom Application-Plugin trennen. In das Application-Plugin kommt 
	
	
	
	





```
public class Application implements IApplication
```
 innerhalb dessen man dann das andere Plugin aufruft. Zusätzlich wird hier noch das "product" reingepackt. Also sind in plugin.xml zwei Extensions deklariert: 1x für org.eclipse.core.runtime.applications und 1x für org.eclipse.core.runtime.products.

Ein weiteres Problem das ich hatte, war die Abhängigkeit zu einer bestimmten Version eines externen Plugins (javax.wsdl). Eclipse hat diese Abhängigkeit stets auf die aktuelle Version aufgelöst, welche jedoch falsch war. Das einzige, was hier bei mir half, war, das Plugin mit der gewünschten Version als binary-plugin in den Workspace zu importieren.

Hoffe, das hilft den Googlern unter uns 

Cheers,

dsplayer


----------

