[Java] exe-Dateien erstellen?

S

Shadow-X

Gast
Java und exe?

Ich mache eine Ausbildung als Informatikkaufmann und hatte in der Schule etwas mit Java angefangen. Würde dass auch gerne weitermachen. Wollte eigentlich nur mal wissen ob man mit Java auch ausführbare Programme wie "start.exe" oder so erstellen kann oder ob dafür dann doch sowas wie C++ gebraucht wird.
 
ja mann kann auch ohne c++, was ja eine komplett andere programiersprache ist.

man kann die java-datei ausführen, wenn man die java-virtual-mashine installiert hat, also sich bei sun die runtime umgebung runtergeladen hat(das müsste man theoretisch auch für c++-proggis, aber die c++-runtime ist schon in winoof drinn).
danach einfach "java programmname" in die konsole eingeben, oder ein jar-archive drausmachen, dann kann man es per doppelklick ausführen.
 
Moin :-)

Vielleicht etwas spät, aber ich kann das hier nicht so stehen lassen :-)

C++ braucht keine Runtime, da C++ unter dem jeweiligen Betriebssystem in Maschinencode kompiliert wird. Dadurch ist (unter gewissen Vorraussetzungen) der C++ Code portabel, muss aber auf jeder Plattform kompiliert werden.

Java hingegen wird mit javac in den sog. Java-Bytecode kompiliert. Das ist, wenn man so will, eine eigene Java-Maschinen sprache.

Mittels der JVM (Java Virtual Machine), auch Interpreter genannt, läuft dieser plattformunabhängige Code dann auf jeder Maschine, für die eine JVM existiert.

Die JVM übersetzt also die Befehle der Java-Maschine auf die jeweiligen Maschinenbefehle.

Aus diesem Grund war Java bisher immer deutlich langsamer als C++.

Mit den neuen Just in Time kompilern ist das zwar deutlich besser geworden, C++ hat aber trotzdem noch deutlich die Nase vorn, was Speed angeht.

Obwohl das eher für Rechenintensive Programme, wie Spiele, usw. entscheident sein dürfte.

Es gibt überigens Tools, die wohl Java nach EXE kompilieren. Das ist dann aber nur Lauffähig unter Windoof.

Ich habe aber keien Ahnung, ob das was bringt, oder ob ich doch einfach ein JAR erstelle.

Viele Grüße,

Nils
 
@ ne2112

du bist früher dran als ich :P

Aber was ich sagen wollte:

Nicht ist unbedingt C schneller als Java (oder C++), In der schule haben wir 2 Logaritmen programmiert um Pi auszurechnen, Java war mit 19sec 5 sec schneller als C.
C ist nicht immer schneller....

Noch ne andere Frage... kennst du ein konkretes Programm, dass jars in exes umwandelt? auch wenn sie nur unter Windoof laufen... ich mein, 99% hat Windoof und 95% hat kein JRE (Java Runtime Environment), das jar-Files öffnet. Das is ein großes Problem.

Chris
 
Eine richtige exe-Datei wie bei C und Konsorten ist mit Java nicht zu bekommen, bestenfalls vorgegaukelte exe's. Alle Programme/Tools, die aus Java-Klassen exe-Dateien machen, nehmen die JVM zur Hilfe bzw. binden sie in die exe mit ein oder binden sie nicht mit ein und setzen trotzdem die JVM auf dem Rechner voraus.

Du kannst genauso gut jar-Archive erstellen, spart Dir Arbeit.

Bezüglich der Geschwindigkeit: in Bezug auf Berechnungen ist Java im großen und ganzen genauso performant wie C oder C++, allerdings sollte man eine aktuelle JVM (mindestens 1.4) verwenden und die Klassen auch dafür erstellen. Das Startverhalten ist natürlich nach wie vor recht Träge, ich bezweifele, ob das jemals wirklich toll wird.
 
Zuletzt bearbeitet:
LickMe schrieb:
C ist nicht immer schneller....
Ja. Beispiel C++ / Java @ c't -g- Man nehme Java-Listen und C++-Listen... aber nein, natürlich nicht STL sondern die MFC-Listen müssen es sein...
... und dann wundere man sich, warum Java schneller ist als C++, wo es doch darin geschrieben ist -g-

Nein, jetzt mal im Ernst:
Wenn man vernünftiges JAVA schreibt und ebenso vernünftiges C(++) und dann fairerweise auch die schnellste JVM gegen das am besten optimierte C++-Programm laufen lässt dann _muss_ C++ schneller sein.
Wenn man natürlich das C++-Programm im DEBUG-Mode ohne Optimierung compiliert... naja -no comment-
 
[font=Verdana, Arial, Helvetica][font=Verdana, Arial, Helvetica]Es gibt eine Möglichkeit ein Java-Programm in einem Installer zu verpacken: http://www.zerog.com/de/downloads_01_now.html
Damit kannste sogar einen Installer erstellen. Der Trick ist hier, dass in dem Pfad wo deine Software installiert ist eine "kleine" JRE hinterlegt wird. Dem Anwender musst du dann nur eine Datei geben (bei nem normalen Java-Projekt ca. 10 MB) Der Anwender führt dann einfach eine EXE aus. Es gibt auch eine Umsonst-Variant ("Install Anywhere Now!")

c++ ist nicht unbedingt schneller, aber man kann wesentlich näher an der hardware programmieren, und so ergibt sich ein riesiges optimierungs-potential (z.b. pointer-arrithmetik, speicherplatz explizit anfordern bzw. freigeben). java hingegen verdeckt diese vorgänge vor dem programmierer.
außerdem braucht java beim programmstart immer ein bisschen länger wegen dem start des interpreters, und der interpretation selbst.
[/font][/font]
 
Aber bisher noch ohne AWT bzw. Swing, damit also keine graphischen Oberflächen...
 
Hallo,

die anderen haben es ja schon gesagt, normale Java Programme kann man z.B. als ausführbare Jar-Datei erstellen. Wenn Du aber Deinen Windows-Usern trotzdem eine exe anbieten möchtest (erstens, weil die meisten Windows-Benutzer mit einer ".jar" nicht viel anzufangen wissen, und zweitens, weil man kein Icon einbinden kann), dann schau doch mal unser Freeware-Tool Xenoage Java Exe Starter ( http://jestart.xenoage.com ) an. Das erzeugt eine einfache kleine exe mit einem beliebigen Icon, die Du einfach mit Deinem Programm auslieferst. Beim Start der exe kümmert sich diese um die Ausführung des Programms in der Jar-Datei. Natürlich muss aber auch dazu die JRE installiert sein.

Ciao,

Andi
 
Hallo,

inzwischen ist Version 2.0 des Xenoage Java Exe Starter verfügbar. Man kann jetzt eine bestimmte JRE-Version vorraussetzen und die Jar in die Exe einbetten (das heißt, ein kleines Java-Programm lässt sich als eine einzige Exe-Datei weitergeben).

Mehr Infos und Downloadmöglichkeit unter
http://www.xenoage.com/jestart/


Andi
 
Zurück
Oben