# .exe Datei erstellen



## Dana (25. Okt 2006)

Hallo Freunde,

ich habe mit JBuilder 9 eine Klasse erstellt und ich will diese Klasse in eine .exe Datei umwandeln. Ist so was möglich?


----------



## The_S (25. Okt 2006)

ja, werf einen Blick in die FAQ, dort wird dir geholfen.

http://www.java-forum.org/de/viewtopic.php?p=116904

http://www.java-forum.org/de/viewtopic.php?t=1525


----------



## thE_29 (25. Okt 2006)

Hast du die Enterprise Version von JBuilder?


----------



## The_S (25. Okt 2006)

Na das nenn ich doch mal flott ... in der selben Minute wie die Frage gestellt wurde gleich *2* Antworten :toll:


----------



## Dana (25. Okt 2006)

Ja ich habe Enterprise Version


----------



## thE_29 (25. Okt 2006)

Geh auf Experten -> Archiv erstellen oder so!

Da musst du zuerst ein Basis Jar Archiv erstellen und danach das nochmals aufrufen und auf "ausführbares Archiv" auswählen!


----------



## DP (26. Okt 2006)

und vor allem die boardsuche bemühen. derartige fragen werden 5* täglich gestellt und geschlossen


----------



## Guest (26. Okt 2006)

warum willste sowas wie ne Exe?? (wiederlich  ) 

das ganze was Java groß macht ist dann dahin!


----------



## AlArenal (26. Okt 2006)

Anonymous hat gesagt.:
			
		

> das ganze was Java groß macht ist dann dahin!



Derber Unfug. Unsere Kunden beispielsweise interessiert es nicht die Bohne, ob die ne JAR, ne EXE oder ne HauMichBlau starten müssen. Hauptsache die Anwendung erledigt ihren Job.


----------



## Guest (26. Okt 2006)

wenn du ne Exe hast, ist die Plattformunabhängigkeit hin. Das ist die Grundidee von Java!!!


----------



## AlArenal (26. Okt 2006)

Anonymous hat gesagt.:
			
		

> wenn du ne Exe hast, ist die Plattformunabhängigkeit hin. Das ist die Grundidee von Java!!!



Auch das ist Unfug. Plattformunabhägngikeit ist lediglich eine von vielen Ideen und sie ist auch kein Dogma, dem alle Java-Entwickler wie Lemminge folgen müssen. Je nachdem für welchen Bereich/welche Kunden du Anwendungen entwickelst spielt Plattformunabhängigkeit nicht die geringste Rolle.


----------



## byte (26. Okt 2006)

Wenns danach geht, ist C++ auch plattformunabhängig. Das ist wohl nicht die einzige Darseinsberechtigung von Java. :roll:


----------



## AlArenal (26. Okt 2006)

byto hat gesagt.:
			
		

> Wenns danach geht, ist C++ auch plattformunabhängig. Das ist wohl nicht die einzige Darseinsberechtigung von Java. :roll:



Wenn doch mache ich den Laden dicht und sage unseren Kunden sie sollen ihr Geld behalten.


----------



## Guest (26. Okt 2006)

Das Bestreben zur Entwicklung von Java beruhte zum größten Teil darauf, einen Programmierstandart sowie 
Compilate für unterschiedliche Betriebssysteme zu erhalten. Der Hintergedanke der Einfachheit in der Erlernung
hattenur sekundäre Bedeutung.

Sicherlich stimme ich dir zu, das es den Entverbraucher bezogen auf einen Windows-Anwendungsfall
ziemlich egal ist worauf er klickt. Darum geht es mir aber nicht.


----------



## Guest (26. Okt 2006)

> Wenns danach geht, ist C++ auch plattformunabhängig. Das ist wohl nicht die einzige Darseinsberechtigung von Java.




Ein C++ Compilat ist nicht Plattformunabhängig.


----------



## AlArenal (26. Okt 2006)

Gast hat gesagt.:
			
		

> Das Bestreben zur Entwicklung von Java beruhte zum größten Teil darauf, einen Programmierstandart sowie
> Compilate für unterschiedliche Betriebssysteme zu erhalten.



Nope.



> Das ursprüngliche Ziel bei der Entwicklung von Java war aber nicht lediglich die Entwicklung einer weiteren Programmiersprache, sondern die Entwicklung einer vollständigen Betriebssystemumgebung, inklusive virtueller CPU, für unterschiedlichste Einsatzzwecke. Das System sollte – der Legende nach – beispielsweise eine Kaffeemaschine steuern können.


http://de.wikipedia.org/wiki/Java_(Technologie)#Geschichte_Javas

Java/Oak war demnach eher als Smalltalk-Abart geplant, das mit einem kleinen HAL auf allerlei Gekreuch und Gefleuch laufen sollte (Multimedia-Geräter für interaktives TV-Gedöns - der Zeit zu weit voraus).


----------



## Guest (26. Okt 2006)

ich finde es beeindruckend das du aufgrund meiner Äußerungen schon im Internet surfst und dir Gegenargumente
suchst.

Sicherlich kann dies das Ursprüngliche Ziel gewesen sein. Aber es ist doch ein bischen anders gekommen, oder?


----------



## AlArenal (26. Okt 2006)

Das geht flotter als es selbst runterzuschreiben. Aber keine Bange, über die Geschichte von Oak hatte ich erst vor einigen Wochen noch irgendwo nen netten Blog gelesen. Außerdem gehört das Belegen von Aussagen durch nachvollziehbare Quellen zum wissenschaftlichen Arbeiten dazu.

Sicher ist es anders gekommen. Darum ja auch ein Veto bzgl. deiner falschen Aussage. Aber schön, dass du es einsiehst.


----------



## Guest (26. Okt 2006)

mir ist meine "falsche Aussage" noch nicht ganz bewust geworden! Welche Aussage von mir liegt dir den auf der Seele?


----------



## AlArenal (26. Okt 2006)

Dazu musst du dir nur deine Posts nochmal durchlesen.

Aber vielen Dank, dass du dich um mein Seelenheil sorgst. Ich weiß das echt zu schätzen. Allein ich fürchte da ist nicht mehr viel zu machen...


----------



## Guest (26. Okt 2006)

ich denke es geht dir um:



> warum willste sowas wie ne Exe?? (wiederlich  )
> 
> das ganze was Java groß macht ist dann dahin!




das ist meine Meinung, die ich fortlaufend vertrete!


----------



## AlArenal (26. Okt 2006)

Zu dumm nur dass die wenigstens Java-Entwickler ihre Brötchen damit bedienen Anwendungen zu entwicklen, die rein dazu da sind die Herrlichkeit der Plattformunabhängigkeit zu preisen.

Idealismus alleine macht nicht satt und das sage ich obwohl ich durchaus in vielerlei Hinsicht ein Idealist bin.

Und der Thread fängt an mit "Wie erstelle ich ne EXE/Kann ich ne EXE erstellen"  und nicht mit "Wie rette ich die Welt?".


----------



## Guest (26. Okt 2006)

ich verstehe nicht ganz worauf du hinaus willst.

Meine Äußerungen zu untergraben, oder vielmehr meine Argumente zur Plattformunäbhängigkeit zu wiederlegen.

Ich denke das der größte Teil der Java Entwicklung sich um die beschriebene Problematik der Plattformun.
widmet. Denn schau die an wo Java so alles läuft, wobei du mit C++ Probleme hättest:

-Webanwendungen
-Handy's
-PDA's


----------



## dsv fritz (26. Okt 2006)

So, jetzt gebe ich auch meinen Senf dazu:


> Denn schau die an wo Java so alles läuft


Da scheint einer ganz viel Erfahrung zu haben, wo welche Sprache "läuft". Java kommt viel mehr vor, als nur in den GUI's. Es gibt heute schon einige Anwendungen im Emedded System Bereich, wo Java als Programmiersprache verwendet wird. Und die sind definitiv nicht plattformunabhängig.


----------



## AlArenal (26. Okt 2006)

Unser Gast läuft am Ziel vorbei. Punkt ist für mich einfach der, dass viele nicht inJava coden, um damit plattformunabhängig zu coden, weil Plattformunabhängigkeit für sie keine Rolle spielt. Daraus ergibt sich, dass ich dieses "Oh nein, mach da keine EXE draus, dann ist es nicht mehr plattformunabhängig"-Geheule ätzend finde, ehe nicht gefragt wurde, ob es dem jenigen welchen darauf überhaupt ankommt. 

Wir entwickeln nicht zum Selbstzweck, sondern um bestimmte Probleme zu lösen und Plattformunabhängigkeit ist mitnichten immerzu eine Rahmenbedingung.


----------



## Guest (26. Okt 2006)

oh man, ich merke schon, wir reden am Thema vorbei. 

Der Grund meiner 1. Äußerung bestand darin, dass meiner Ansicht nach sinnlose Vorhaben (ich vermute sogar 
unter Windows) eine Exe aus einer Java Datei zu erstellen, auf humorvolle Weise in Frage zu stellen.


----------



## byte (26. Okt 2006)

Anonymous hat gesagt.:
			
		

> > Wenns danach geht, ist C++ auch plattformunabhängig. Das ist wohl nicht die einzige Darseinsberechtigung von Java.
> 
> 
> 
> ...



Aber der Code ist es u.U. - wenns danach geht, kann ich auch sagen: Java ist nicht plattformunabhängig. Denn es läuft nur auf jenen Plattformen, für die es eine JVM gibt...


----------



## Jango (26. Okt 2006)

Hallo,

jetzt hak' ich mich hier auch mal ein. AlArenal hat vollkommen Recht! Was hab ich davon, wenn mein Programm auf einer selbstgepressten Platform eines Users aus dem tiefsten Hinterindien läuft, wenn doch der Großteil Aller mit z.B. Windows arbeitet?
Und zu Java's Grundidee gehörte auch, dass übliche Haushaltgeräte miteinander 'kommunizieren' sollten. Mich persönlich würde es arg stören, wenn der Toaster früh um fünf lautstark die Kaffeemaschine auslacht, weil sie grün anläuft.
Keiner will Dir Deine lobenswerte Einstellung zu Java abstreitig machen, "Gast", aber die Realität im Programmieralltag sieht ein wenig anders aus.


----------



## Guest (26. Okt 2006)

naja, dann antworte ich auch nochmal:

also



> jetzt hak' ich mich hier auch mal ein. AlArenal hat vollkommen Recht! Was hab ich davon, wenn mein Programm auf einer selbstgepressten Platform eines Users aus dem tiefsten Hinterindien läuft, wenn doch der Großteil Aller mit z.B. Windows arbeitet?



es gibt genügent Gründe eine Software Plattformunabhängig zu programmieren. Und gerade erst die Tatsache
das meine Software auf einer "selbstgepressten Platform eines Users aus dem tiefsten Hinterindien " läuft
würde mich nur erfreuen.



> Und zu Java's Grundidee gehörte auch, dass übliche Haushaltgeräte miteinander 'kommunizieren' sollten.



das habe ich nie bezweifelt.


----------



## Anderer Gast (26. Okt 2006)

Entschuldigung, das ich mich einmische,

aber da ich jetzt verstanden habe, dass es sehr viele Befürworter gibt, welche es durchaus sinnvoll finden, ein Java Programm in eine .exe umzuwandeln, würde mich mal interessieren, wie ich ein kleines Programm mit kleiner GUI in eine .exe Datei umwandle (also nativer Code), ohne das ich Programm mit zig Mbyte ( z.B. Excelsior Jet)Größe habe, oder mit die Mühe mache mit z.B. SwingWT oder ähnlichem zu arbeiten.
Dann programmiere ich doch nicht ein Java Programm, sondern in C++, oder was soll da Java für Vorteile haben.
Also Java zu benützen um nativen Code zu erzeugen finde ich ziemlich sinnlos.
Ist jedenfalls meine Meinung.


----------



## Gast (26. Okt 2006)

Hallo zusammen,
nun, das finde ich jetzt auch interessant, dass jetzt viel in Java programmiert wird und nativ compiliert wird.
Ich habe leider die Entwicklung nicht mitverfolgt und bin nun überrascht, das viel in Java programmiert und nativ compiliert wird. Ich habe mit Java angefangen zu programmieren, seit vier Jahren jedoch programmiere ich nur noch in C++, da ich hauptsächlich mit Echtzeitanwendungen zu tun habe.
Meine Frage nun:
Was für einen Compiler benützt Ihr?
ist es heute nicht mehr so, dass bytecode und der dazugehörige native code zur selben Zeit im Speicher sind und somit zuviel Speicher verbraucht wird?
Und funktioniert die Java zu native Code einwandfrei mit dem neuesten jdk?
Das wäre mal ein Fortschritt und ich würde sogar überlegen wieder mit Java anzufangen, wenn die 20 * langsamere Ausführungszeit wegfällt.
Danke für Hinweise.


----------



## Jango (26. Okt 2006)

Anderer Gast hat gesagt.:
			
		

> Dann programmiere ich doch nicht ein Java Programm, sondern in C++, oder was soll da Java für Vorteile haben.
> Also Java zu benützen um nativen Code zu erzeugen finde ich ziemlich sinnlos.



Das Ziel ist doch, funktionierende Programme ins Leben zu rufen. Welche Programmiersprache man dabei benutzt, hängt sicher von der Erwartung ab, die man an ein Programm stellt. Natürlich kann man alles in C++ oder sogar in C programmieren. Nur sind diese Sprachen wesentlich fehleranfälliger als Java (Zeiger, Speicherverwaltung...). Und dann noch das Internet. Wer dafür anspruchsvollen Code schreiben möchte, kommt an Java nicht vorbei (und dafür braucht man ja bekanntlich auch keine *.exe). Jeder muss das für sich entscheiden, womit er arbeiten möchte. 
Ach so - Excelsior ist doch nicht groß. Und außerdem gibt's da auch Alternativen - muss man halt mal eine Weile bei Google suchen. Tschau...


----------



## AlArenal (26. Okt 2006)

Ich schrieb nicht, dass ich das Erzeugen einer EXE für Java-Progs befürworte - ich lehne es lediglich nicht grundsätzlich ab. Bei uns ist es so und ich kenne viele ähnlich gelagerte Fälle, dass wir unsere Anwendung per WebStart deployen. Dieser Mechanismus ist aber auch alles was uns davon abhält keine nativen Windows-Progs rauszugeben, denn die Clients sind zu tausenden samt und sonders Windows-Büchsen. 

In solchen Fällen ist Plattformunabhängigkeit kein Thema und in meinem speziellen Fall auch eh nicht mehr gegeben, da wir teils Libs mit nativem Win32-Code benutzen. Da muss man einfach mit dem Kunden gehen, alles andere ist Harakiri.

Die Größe der Anwendung ist bei uns irrelevant. Ob die Leute nun einmal 10 oder einmal 30 MB irgendwoher laden müssen ist in einem LAN nicht wichtig. Kunden wollen eine Software haben, die ihre Probleme möglichst gut löst. Rahmenbedingungen die besondere Einschränkungen im Bereich der Größe fordern sind absolute Ausnahme. Und habe ich ne größere Anwendung, weil ich mit JET benötigte Teile des JRE hinzugelinkt habe, dann ist die Gesamtgröße noch immer geringer als wenn ich ein Standard-JRE + meine Anwendung nehme. Das JRE installier sich bekanntlich auch nicht durch Scotties Beamer...

Und Java oder C++ - die Frage stellt sich nicht, wenn die Skills im Unternehmen auf Java liegen und wie oben angemerkt WebStart als Deployment-Mechanismus gerne genommen wird. 

Es geht bei der Generierung von EXE für Java-Apps in der Regel nicht darum nativen Code zu erzeugen, sondern dem Kunden/User die Installation und das Starten der Anwendung so wenig fehleranfällig zu machen wie möglich. Und je mehr Komponenten ich installieren muss, desto höher die Gefahr dass Fehler auftreten. Gleiches gitl, wenn mehr Schritte notwendig sind, bis die Applikation endlich läuft.

Ein großer Vorteil von JET ist auch, dass man ein ganz bestimmtes JRE hinzulinken kann und nicht beim Debugginig im Zweifelsfalle Dutzende verschiedener installirterter Versionen eines JRE bei Kunden in Betracht ziehen muss. Das macht auch das Debugging und die Qualitätssicherung einfacher.


----------



## Gast (26. Okt 2006)

Ja klar,
ist für mich auch nachvollziehbar, aber nicht 
logisch.
Egal, für mich ist das halt ein rumgeschustere. Entweder ich erstelle eine Java Anwendung und erwarte vom Kunden soviel Fachwissen, dass er damit umgehen kann, oder eine C++ Applikation. Ist das zuviel verlangt?
Ist halt Einstellungssache. Für mich ist so ein Mischmasch ein Zeichen von Unprofessionalität.
Ist halt meine persönliche Meinung.
Gruß Gast


----------



## AlArenal (26. Okt 2006)

Es ist weder Einstellungssache noch unprofessionell. Als Software-Firma musst du sehen was für Skills deine Coder haben und was du für Skills auf dem Markt bekommen kannst wenn du neue Mitarbeiter suchst. Schau dich um und du wirst sehen, dass Java sehr viel gelehrt wird und die vielen Mannjahre Java-Skill und -Code die du hast wegzuwerfen, um irgendeinem Ideal hinterherzurennen ("Plattformabhängige Anwendungen in Java sind bäh.") macht wirtschaftlich keinen Sinn. Es macht auch keinen Sinn sich als Java-Coder mit C++ rumzuprügeln und dann mit den wackligen Kenntnissen Projekte umzusetzen, die du in Java flott und in guter Qualität umgesetzt bekommen hättest - keiner bezahlt dir freiwllig diesen Mehraufwand und verzeiht dir die zusätzlich benötigte Zeit bis zur Fertigstellung.

Es geht hier nicht darum mal eben nen Compiler zu installieren und ein Fenster aufzumachen, wo "Hello world!" drinsteht. Das kannste flott in jeder x-beliebigen Sprache machen. Aber du kannst gemachte Investitionen (Personal, Tools, Schulungen, Code, ...) nicht einfach in die Tonne treten. Darum gibt es noch so viel Cobol, Fortran, C, C++, .... Warum wegwerfen was funktioniert und lange gereift ist?

Das mögen Zusammenhänge sein, die man zur Schul-, Lehr- oder Studienzeit noch nicht sehen mag, aber sie sind da und sie bestimmen den Markt und damit auch den Erfolg von Firmen und Produkten und darüber auch den der Mitarbeiter und nicht zuletzt auch den von Sprachen, Tools und Frameworks.


----------



## Ganz neuer Gast (27. Okt 2006)

Wurde denn jetzt dem Urheber dieses Threads eigentlich geantwortet...?


----------



## Roar (27. Okt 2006)

Anonymous hat gesagt.:
			
		

> Wurde denn jetzt dem Urheber dieses Threads eigentlich geantwortet...?


ja, herr amateur


----------



## dsv fritz (27. Okt 2006)

Danke AlArenal, du hast es auf den Punkt gebracht. Heute greifen so viele Elemente ineinander, so dass man sich nicht auf nur eine Sprache fixieren kann. Der Kunde kommt mit einem Problem und dann muss man flexibel und anpassungsfähig sein. Wenn du dann sagen würdest, meine verwendete Programmiersprache kann das nicht, dann kannst du schon mal die Tage zählen, bis zum Termin beim Konkursamt.


----------



## byte (27. Okt 2006)

Ich habe bisher noch kein einziges plausibles Gegenargument gelesen, warum man mit Java keine plattformspezifischen Anwendungen schreiben sollte. Das schöne an einer plattformunabhängigen Sprache ist schlicht und ergreifend, dass die Sprache dem Entwickler keinerlei Einschränkungen macht. Das bedeutet aber keinesfalls, dass ich auch auf Teufel komm raus plattformunabhängig programmieren *muss*. Ich habe die Wahl. Ich kanns mir aussuchen. Und ich wüsste beim besten Willen nicht, warum ich stattdessen auf C++ umschwänken sollte, wenn Java ansonsten alle gestellten Anforderungen erfüllt.


----------



## Gast (27. Okt 2006)

Hallo nochmal,
also um nochmal klarzustellen (ich will die Diskussion nicht neu entfachen, sondern will das nur so nicht stehen lassen), ich bin kein C++ ist doch viel besser, bla bla bla, ist doch viel schneller. Diese Diskussionen kann man in der Grundschule führen. Aber es wurde hier schlichtweg alles verdreht, um was es wirklich ging.
@AlArenal:
In Deinem letzten Beitrag argumentist Du mit Tatsachen, welche natürlich völlig richtig sind, Du hast da zu 110% recht. Das ist doch auch jedem klar.
Mir ging es auch nicht darum. Vielleicht habe ich auch nicht verstanden was Ihr meint, aber ich habe es so aufgefasst, das Ihr meint, durch natives compilieren von Java-Code, die Vorteile von C++ zu kompensieren. Und das ist schlichtweg nicht möglich. Wie gesagt, wir programmieren maschinennah und dazu ist Java nicht geeignet, auch nicht nativ kompiliert. Meine Meinung ist, jede Sprache sollte dort eingesetzt werden, wo Sie die Erwartungen erfüllen kann. Und wenn Du nun Kunden hast, welche Echtzeitanwendungen benötigen, Du aber nur Java Programmierer hast und nun koste es was es wolle den Auftrag erfüllen willst, wirst Du scheitern und so bald keine Aufträge mehr haben.
Darum ging es mir.
Und @byte:


> warum ich stattdessen auf C++ umschwänken sollte, wenn Java ansonsten alle gestellten Anforderungen erfüllt.


Das sollst Du in dem Fall auch nicht.
Und außerdem bin ich auch auf den Thread Ersteller eingegangen:

Ich habe !!eine!! Klasse.

meist handelt es sich dabei um Programmieranfänger, welche ein Fenster erstellen mit einem Button bitte drücken um Zähler zu erhöhen. Es ging hier nicht um kommerzielle Programmierung.
Und nun dafür Jet runterladen, installieren, usw.
Ergebnis: 30 Mbyte Programm.
Da meinte ich, die ersten drei Seiten eines C++ Lehrbuches lesen und in C++ programmieren ist einfacher.
Sollte ich den Thread falsch verstanden haben, sorry.
Gruß Gast


----------



## Guest (27. Okt 2006)

@AlArenal

Guten Morgen erstmal,

ich will ja nicht die Diskusion von Gestern aufgrund der Aussage:



> Plattformabhängige Anwendungen in Java sind bäh.




wieder neu entfachen, aber...

ich muss sagen, das trifft mich hart. Ich denke "unser" Problem liegt
darin, dass vielmehr unser Anwendungszweck der Programmierung
an sich unsere Meinung prägt. Du bist, denke ich Softwareentwickler
in einer Firma der Kundeorientiert, sowie Lastenheftorientiert entwickelt.
Und dich dabei keine Sorgen um Plattformun. macht, weils den Kunden
sicherlich herzlich wenig (vermutlich als Windowsanwender) interessiert.

Ich bin Informatikstudent und arbeite mit unterschiedlichen Betriebssystemen.
Für mich ist es von Interesse das meine Software überall läuft.


----------



## byte (27. Okt 2006)

Gast hat gesagt.:
			
		

> Vielleicht habe ich auch nicht verstanden was Ihr meint, aber ich habe es so aufgefasst, das Ihr meint, durch natives compilieren von Java-Code, die Vorteile von C++ zu kompensieren. Und das ist schlichtweg nicht möglich. Wie gesagt, wir programmieren maschinennah und dazu ist Java nicht geeignet, auch nicht nativ kompiliert.



Ich glaube, wir reden tatsächlich aneinander vorbei. Es gibt zwar Möglichkeiten, Java Code nativ zu kompilieren, aber das war ja nicht das Thema hier. Die EXE dient ja nur als Wrapper für den Aufruf des Java Programms, um Windows Nutzern eine intuitive Möglichkeit zu bieten, die Anwendung zu starten. Zwar lassen sich Jars auch mit einem Doppelklick starten, wenn man das JRE korrekt unter Windows installiert hat, aber es gibt genug Programme (z.B. Winrar), die sich die Jar Erweiterung im Nachinein mopsen und dann ist das Starten der Anwendung für einen Leien evtl. nicht mehr so einfach.

Des weiteren gibt es halt Möglichkeiten, der EXE das JRE hinzuzufügen, so das kein Java installiert sein muss, um die Anwendung zu starten.

Es ging also nie darum, Java Programme nativ zu kompilieren, um sich damit irgendwelche C(++) Vorteile anzueignen. Das ist ein gänzlich anderes Thema. Thema ist hier lediglich die Usability.


----------

