Discussion:
Java Anwendung veröffentlichen mit Eclipse 3
(zu alt für eine Antwort)
Benjamin Wiehn
2005-08-09 15:21:20 UTC
Permalink
Hallo,

ich habe vor einiger Zeit mit Java angefangen und nun mit Eclipse 3 einige
Programme geschrieben (Anfängerzeugs halt...Multimedia, Taschenrechner,
usw.). Nun würde ich die Anwendungen gerne "eigenständig" machen. Also am
liebsten hätte ich im Endeffekt eine .exe Datei, die man dann nurnoch öffnen
muss, und mein Programm läuft. Kann mir jemand vielleicht helfen, wie ich
das in Eclipse bewerkstellige? Oder gibt es irgendwo ein (leicht
verständliches) Tutorial dafür?

Danke,
Benjamin
Sascha Broich
2005-08-09 15:25:58 UTC
Permalink
Post by Benjamin Wiehn
Hallo,
ich habe vor einiger Zeit mit Java angefangen und nun mit Eclipse 3 einige
Programme geschrieben (Anfängerzeugs halt...Multimedia, Taschenrechner,
usw.). Nun würde ich die Anwendungen gerne "eigenständig" machen. Also am
liebsten hätte ich im Endeffekt eine .exe Datei, die man dann nurnoch öffnen
muss, und mein Programm läuft. Kann mir jemand vielleicht helfen, wie ich
das in Eclipse bewerkstellige? Oder gibt es irgendwo ein (leicht
verständliches) Tutorial dafür?
Du kannst das als "jar" exportieren (Menu->File->Export). Wenn du die
richtige main-Klasse angibst (und Java sauber installiert ist), dann sollte
das jar-File startbar sein.


Sascha Broich
--
Er will sie nicht?
Er, will sie nicht?
Er will, sie nicht?
Er will sie, nicht?
Benjamin Wiehn
2005-08-09 17:35:29 UTC
Permalink
Post by Sascha Broich
Du kannst das als "jar" exportieren (Menu->File->Export). Wenn du die
richtige main-Klasse angibst (und Java sauber installiert ist), dann sollte
das jar-File startbar sein.
Hm ja danke, das würde mir ja schon reichen. ;)

Nur damit habe ich jetzt noch ein paar Problemchen:

#1: Wenn ich das auf diese Weise mache, kann ich beim export ja eine
manifest Datei erstellen lassen. In dieser gibt Eclipse aber leider nur die
Manifest Version an und nicht die Main-Class. Das muss ich dann immer per
Hand nachtragen, damit das Jar File gestartet werden kann. Kann man da
irgendwie Abhilfe schaffen?

#2: Wenn ich die GUI mit Swing entwickle, habe ich bei oben beschriebener
Vorgehensweise keinerlei Probleme. Nutze ich allerdings SWT, startet meine
Applikation nicht, nachdem ich sie in ein Jar-File exportiert habe. Ich
bekomme keinerlei Meldung. In Eclipse selber kann ich die Applikation ohne
Probleme starten (mit "Run as Java Application"). Habe ich da irgendwas
übersehen?

#3 (hängt vielleicht mit #2 zusammen?): Wenn ich Programme weitergeben
möchte, kann ich ja nicht davon ausgehen, dass ein Freund / Kollege / usw.
alle Klassen hat, die ich benutzt habe (z.B. SWT), wenn diese nicht
Bestandteil der JRE sind. Kann ich Eclipse nicht anweisen, alle diese
Klassen mit in das jar File zu packen, damit die auf jeden Fall bei jedem
Benutzer verfügbar sind?
Post by Sascha Broich
Warum sollte eine Java-Anwendung nur unter Windows (.exe) laufen?
Eclipse ist doch auch in Java geschrieben und wird über eine exe Datei
gestartet...warum darf mein Programm das dann nicht? ;)

In der Hoffnung auf Erleuchtung :)
Benjamin
Uwe Seimet
2005-08-09 18:04:03 UTC
Permalink
Post by Benjamin Wiehn
Eclipse ist doch auch in Java geschrieben und wird über eine exe Datei
gestartet...warum darf mein Programm das dann nicht? ;)
Nehmen wir mal an, ich möchte deine Anwendung benutzen, aber ich arbeite
unter Linux. Was soll ich mit deiner .exe-Datei anfangen? Damit bin ich
kein potentieller Anwender mehr für dich.
Ein Freund von mir hat einen Mac. Auch er kann mit der .exe-Datei nichts
anfangen. Und wieder einer weniger, der deine Software benutzt. Usw.

Wenn du aber nur jar-Files auslieferst (also insbesondere kein .exe),
kann jeder deine Software benutzen, wenn es Java für seine Plattform gibt.

Was eclipse angeht werden dort m.w. native Libraries benutzt (man
korrigiere mich bitte, wenn das so nicht stimmt), eclipse ist also nicht
Pure-Java. Damit ist dann auch die Plattform-Unabhängigkeit nicht mehr
gegeben.
--
-----------------------------------------------------------------------
Dr. Uwe Seimet http://www.seimet.de
Benjamin Wiehn
2005-08-10 14:16:30 UTC
Permalink
Post by Uwe Seimet
Nehmen wir mal an, ich möchte deine Anwendung benutzen, aber ich arbeite
unter Linux. Was soll ich mit deiner .exe-Datei anfangen? Damit bin ich
kein potentieller Anwender mehr für dich.
Ein Freund von mir hat einen Mac. Auch er kann mit der .exe-Datei nichts
anfangen. Und wieder einer weniger, der deine Software benutzt. Usw.
Ok, abgesehen davon, dass meine Software nicht für einen großen
Personenkreis gedacht ist und ich niemanden kenne, der kein Windows hat,
hast du natürlich recht. Aber die Lösung mit den Jar Dateien reicht mir ja
schon.
Post by Uwe Seimet
Was eclipse angeht werden dort m.w. native Libraries benutzt (man
korrigiere mich bitte, wenn das so nicht stimmt), eclipse ist also nicht
Pure-Java. Damit ist dann auch die Plattform-Unabhängigkeit nicht mehr
gegeben.
Also soweit ich weiß, sind mit Eclipse entwickelte Anwendungen schon noch
plattformunabhängig.

Was mich aber primär erstmal interessieren würde, wäre eine Lösung für die
Probleme, welche ich noch mit Eclipse habe ;)

Danke,
Benjamin
Michael Rex
2005-08-10 19:31:50 UTC
Permalink
Post by Benjamin Wiehn
Ok, abgesehen davon, dass meine Software nicht für einen großen
Personenkreis gedacht ist und ich niemanden kenne, der kein Windows hat,
Die soll es aber trotzdem geben ;-)
Post by Benjamin Wiehn
hast du natürlich recht. Aber die Lösung mit den Jar Dateien reicht mir ja
schon.
Und ist auch die bessere. Zumindest unter Mac OS X lassen sich jar-Dateien
wie normale Programme starten, bei den meisten Linux-Distributionen ist da
noch etwas Handarbeit nötig, auch wenn es prinzipiell geht. Wie's unter
Windows aussieht weiß ich nicht, aber das sollte eigentlich auch kein
Problem sein, wenn Windows mit jar-Dateien richtig umzugehen weiß. Und eine
JRE installiert ist ;-)
Post by Benjamin Wiehn
Also soweit ich weiß, sind mit Eclipse entwickelte Anwendungen schon noch
plattformunabhängig.
Daß schon, aber Eclipse selbst halt nicht. Bzw. genauer gesagt SWT, dafür
sind plattformspezifische Libraries notwendig. Schau dir einfach mal die
Downloadseite von Eclipse an, wenn es eine reine Java-Applikation wäre
sollten da erheblich weniger Auswahlmöglichkeiten angegeben sein ;-)
Post by Benjamin Wiehn
Was mich aber primär erstmal interessieren würde, wäre eine Lösung für die
Probleme, welche ich noch mit Eclipse habe ;)
Da hast du ja jetzt schon einige bekommen.

Bye, Michael
--
Hi.
How are you doing?
You're enjoying it?
I hope so.
Uwe Seimet
2005-08-11 08:03:34 UTC
Permalink
Post by Benjamin Wiehn
Also soweit ich weiß, sind mit Eclipse entwickelte Anwendungen schon noch
plattformunabhängig.
Richtig, aber nicht Eclipse selbst. Daher auch die verschiedenen
Installations-Pakete, je nach Plattform.
--
-----------------------------------------------------------------------
Dr. Uwe Seimet http://www.seimet.de
Sascha Broich
2005-08-10 07:42:28 UTC
Permalink
Post by Benjamin Wiehn
Post by Sascha Broich
Du kannst das als "jar" exportieren (Menu->File->Export). Wenn du die
richtige main-Klasse angibst (und Java sauber installiert ist), dann sollte
das jar-File startbar sein.
Hm ja danke, das würde mir ja schon reichen. ;)
#1: Wenn ich das auf diese Weise mache, kann ich beim export ja eine
manifest Datei erstellen lassen. In dieser gibt Eclipse aber leider nur die
Manifest Version an und nicht die Main-Class. Das muss ich dann immer per
Hand nachtragen, damit das Jar File gestartet werden kann. Kann man da
irgendwie Abhilfe schaffen?
Du kannst ja die Einstellungen speichern (als jardesc) und über diese Datei
dann mit Rechter Maustaste und "Create Jar File" schnell eine neue Version
erzeugen.
Post by Benjamin Wiehn
#2: Wenn ich die GUI mit Swing entwickle, habe ich bei oben beschriebener
Vorgehensweise keinerlei Probleme. Nutze ich allerdings SWT, startet meine
Applikation nicht, nachdem ich sie in ein Jar-File exportiert habe. Ich
bekomme keinerlei Meldung. In Eclipse selber kann ich die Applikation ohne
Probleme starten (mit "Run as Java Application"). Habe ich da irgendwas
übersehen?
Du musst die SWT-Bibliotheken mit angeben.
Post by Benjamin Wiehn
#3 (hängt vielleicht mit #2 zusammen?): Wenn ich Programme weitergeben
möchte, kann ich ja nicht davon ausgehen, dass ein Freund / Kollege / usw.
alle Klassen hat, die ich benutzt habe (z.B. SWT), wenn diese nicht
Bestandteil der JRE sind. Kann ich Eclipse nicht anweisen, alle diese
Klassen mit in das jar File zu packen, damit die auf jeden Fall bei jedem
Benutzer verfügbar sind?
Such mal bei (groups.)google nach "jar im jar"



Sascha Broich
--
Den Blick hielt er nach rechts gewandt,
der Bus kam leider linker Hand.
(VOX Werbung Six Feet Under)
Kroll, Michael
2005-08-10 10:08:36 UTC
Permalink
Hallo,

was auch sehr hilfreich ist in diesem zusammenhang ist FatJar, ein
Eclipse plugin was alle eingebunden jar's zu einem macht.
Also es werden wohl alle entpackt und wieder zu einem zusammen gefügt.

http://fjep.sourceforge.net/

The Fat Jar Eclipse Plug-In is a Deployment-Tool which deploys an
Eclipse java-project into one executable jar.

It adds the Entry "Build Fat-JAR" to the Export-Wizard.
In addition to the eclipse standard jar-exporter referenced classes and
jars are included to the "Fat-Jar", so the resulting jar contains all
needed classes and can be executed directly with "java -jar", no
classpath has to be set, no additional jars have to be deployed.

Jars, External-Jars, User-Libraries, System-Libraries, Classes-Folders
and Project-Exports are considered by the plugin.
The Main-Class can be selected and Manifest-files are merged.


Gruss Michael

--
http://www.smurfi.de
Ferenc Hechler
2005-08-10 18:25:50 UTC
Permalink
Zum Thema Fat-Jar und SWT gibt es inzwischen eine Hilfe-Seite mit einem
Beispielprojekt.
Die SWT.DLL wird als resource gespeichert und bei bedarf entpackt:

http://fjep.sourceforge.net/fjepfaq.html

Viele Grüße,

feri
Post by Benjamin Wiehn
Hallo,
was auch sehr hilfreich ist in diesem zusammenhang ist FatJar, ein
Eclipse plugin was alle eingebunden jar's zu einem macht.
Also es werden wohl alle entpackt und wieder zu einem zusammen gefügt.
http://fjep.sourceforge.net/
The Fat Jar Eclipse Plug-In is a Deployment-Tool which deploys an Eclipse
java-project into one executable jar.
It adds the Entry "Build Fat-JAR" to the Export-Wizard.
In addition to the eclipse standard jar-exporter referenced classes and
jars are included to the "Fat-Jar", so the resulting jar contains all
needed classes and can be executed directly with "java -jar", no classpath
has to be set, no additional jars have to be deployed.
Jars, External-Jars, User-Libraries, System-Libraries, Classes-Folders and
Project-Exports are considered by the plugin.
The Main-Class can be selected and Manifest-files are merged.
Gruss Michael
--
http://www.smurfi.de
Wanja Gayk
2005-08-10 19:19:20 UTC
Permalink
Ferenc Hechler said...
Post by Ferenc Hechler
Zum Thema Fat-Jar und SWT gibt es inzwischen eine Hilfe-Seite mit einem
Beispielprojekt.
[TOFU entsorgt]
Zum Thema Quoting in Newsgroups gibt es sogar schon seit längerem ne
Hilfe-Seite: http://www.learn.to/quote/
Beispieltext findest du in dieser Newsgroups in ausreichender Menge.

Gruß,
-Wanja-
--
"Gewisse Schriftsteller sagen von ihren Werken immer: 'Mein Buch, mein
Kommentar, meine Geschichte'. [..] Es wäre besser, wenn sie sagten:
'unser Buch, unser Kommentar, unsere Geschichte'; wenn man bedenkt, dass
das Gute darin mehr von anderen ist als von ihnen." [Blaise Pascal]
Alfred
2005-08-11 05:49:11 UTC
Permalink
Post by Benjamin Wiehn
Hallo,
was auch sehr hilfreich ist in diesem zusammenhang ist FatJar, ein
Eclipse plugin was alle eingebunden jar's zu einem macht.
Also es werden wohl alle entpackt und wieder zu einem zusammen gefügt.
http://fjep.sourceforge.net/
The Fat Jar Eclipse Plug-In is a Deployment-Tool which deploys an
Eclipse java-project into one executable jar.
Dazu braucht man kein Tool - das kann ich schon mit Winzip
oder auch einem WndowsCommander ganz einfach selber machen.
Nur nennt man sowas patchen und dabei sollte man sich die
einzelnen Lizenzbedingungen genau ansehen.

Alfred
Uwe Seimet
2005-08-09 16:15:45 UTC
Permalink
Post by Benjamin Wiehn
ich habe vor einiger Zeit mit Java angefangen und nun mit Eclipse 3 einige
Programme geschrieben (Anfängerzeugs halt...Multimedia, Taschenrechner,
usw.). Nun würde ich die Anwendungen gerne "eigenständig" machen. Also am
liebsten hätte ich im Endeffekt eine .exe Datei, die man dann nurnoch öffnen
muss, und mein Programm läuft. Kann mir jemand vielleicht helfen, wie ich
das in Eclipse bewerkstellige? Oder gibt es irgendwo ein (leicht
verständliches) Tutorial dafür?
gcj (aus der GCC-Distribution) kann aus Klassen und Jar-Files
*plattformunabhängige* Binaries erstellen.
Aber willst du das wirklich? Damit verlierst du jegliche
Plattform-Unabhängigkeit. Warum sollte eine Java-Anwendung nur unter
Windows (.exe) laufen?
--
-----------------------------------------------------------------------
Dr. Uwe Seimet http://www.seimet.de
Bernd Post
2005-08-09 16:47:00 UTC
Permalink
Post by Uwe Seimet
Post by Benjamin Wiehn
ich habe vor einiger Zeit mit Java angefangen und nun mit Eclipse 3
einige Programme geschrieben (Anfängerzeugs halt...Multimedia,
Taschenrechner, usw.). Nun würde ich die Anwendungen gerne
"eigenständig" machen. Also am liebsten hätte ich im Endeffekt eine
.exe Datei, die man dann nurnoch öffnen muss, und mein Programm läuft.
Kann mir jemand vielleicht helfen, wie ich das in Eclipse
bewerkstellige? Oder gibt es irgendwo ein (leicht verständliches)
Tutorial dafür?
gcj (aus der GCC-Distribution) kann aus Klassen und Jar-Files
*plattformunabhängige* Binaries erstellen.
------------??
Post by Uwe Seimet
Aber willst du das wirklich? Damit verlierst du jegliche
Plattform-Unabhängigkeit. Warum sollte eine Java-Anwendung nur unter
Windows (.exe) laufen?
;-)
Bernd
Wanja Gayk
2005-08-09 17:37:28 UTC
Permalink
Hallo,

Benjamin Wiehn said...
Post by Benjamin Wiehn
ich habe vor einiger Zeit mit Java angefangen und nun mit Eclipse 3 einige
Programme geschrieben (Anfängerzeugs halt...Multimedia, Taschenrechner,
usw.). Nun würde ich die Anwendungen gerne "eigenständig" machen. Also am
liebsten hätte ich im Endeffekt eine .exe Datei, die man dann nurnoch öffnen
muss, und mein Programm läuft. Kann mir jemand vielleicht helfen, wie ich
das in Eclipse bewerkstellige? Oder gibt es irgendwo ein (leicht
verständliches) Tutorial dafür?
Eine .exe Datei ist keine gute Idee, denn damit ist die
Platformunabhängigkeit flöten.

Pack das Zeug in ein jar-Archiv und leg ein Manifest an, dann kann man
es unter Windows mit einem Dopppelklick starten (solange Winrar die
Erweiterung ".jar" nicht an sich gerissen hat). Ein Jar dieser Art
kannst du hervorragend mit Webstart verteilen, sprich: du packst z.B.
das jar und ein .jnlp-File auf deine Webseite, einKlick auf denLink
genügt und es wird installiert und von dort an wird bei allen Nutzern
automatisch die Version auf dem neuesten Stand gehalten, weil beim Start
nmal eben auf ein Update geprüft und dieses notfalls herunergeladen
nachgeladen wird.
Siehe hier:
http://www.cokeandcode.com/info/webstart-howto.html
Diese Variante würde ich bevorzugen: geht einfach und leistet viel.

Wenn du _wirklich_ eine .exe willst, wäre Excelsior Jet was für dich:
http://www.excelsior-usa.com/jet.html

Gruß,
-Wanja-
--
"Gewisse Schriftsteller sagen von ihren Werken immer: 'Mein Buch, mein
Kommentar, meine Geschichte'. [..] Es wäre besser, wenn sie sagten:
'unser Buch, unser Kommentar, unsere Geschichte'; wenn man bedenkt, dass
das Gute darin mehr von anderen ist als von ihnen." [Blaise Pascal]
Holger Samoht
2005-08-09 19:11:15 UTC
Permalink
Post by Benjamin Wiehn
Hallo,
ich habe vor einiger Zeit mit Java angefangen und nun mit Eclipse 3 einige
Programme geschrieben (Anfängerzeugs halt...Multimedia, Taschenrechner,
usw.). Nun würde ich die Anwendungen gerne "eigenständig" machen. Also am
liebsten hätte ich im Endeffekt eine .exe Datei, die man dann nurnoch
öffnen muss, und mein Programm läuft. Kann mir jemand vielleicht helfen,
wie ich das in Eclipse bewerkstellige? Oder gibt es irgendwo ein (leicht
verständliches) Tutorial dafür?
Danke,
Benjamin
Schau Dir mal auf dem freien Markt für EXE Wrapper um. Da gibt es auf
Sourceforge was - mir fällt nur der Name nicht ein. Plattformunabhängig bist
Du dann natürlich nicht mehr ...

Gruß Holger
Lesen Sie weiter auf narkive:
Loading...