Ausführbare Datei / Anwendung erstellen

Hallo,

bezogen auf den folgenden Artikel Java Anwendung erstellen, besteht die Möglichkeit aus meiner .java Datei eine Anwendung zu erstellen?

Der Artikel ist schon knapp 4 Jahre alt :slight_smile: Ich hoffe da hat sich etwas getan!

LG

Was meinst du mit mit Anwendung?

Wenn du einen Java Source Code hast kannst du den mit einem Compiler in ein Class file wandeln. Ein Classfile kannst du dann mit der Java Laufzeitumbegung ausführen.

Du hast da verschiedene Möglichkeiten:

  1. Eine Jar erstellen (Die IDE hilft dabei)
  2. Einen Exe Wrapper verwenden (unnötig, kompliziert und bringt nichts, Beispiel ist http://www.jwrapper.com/index.html)
  3. Batch/Bash Scripte verwenden, die deinen Code ausführen. (also den Aufruf java … ausführen)

Eine .exe Anwendung.

Über NetBeans kann ich mit Shift + F11 eine .jar Datei ausführen.

Warum willst du eine Exe-Datei haben? Die ist doch plattformabhängig, ganz im Gegensatz zu einer Jar-Datei, die sich unter Windows zumindest, auch per Doppelklick starten lässt.

http://wiki.byte-welt.net/wiki/Java-Programme_starten_-_Möglichkeiten

Es hat sich an der ganzen Sache nichts geändert. Java-Sourcen kompilieren -> Class-Dateien werden erstellt. Diese können in einer Jar-Datei zusammengefasst werden, eventuell noch eine Manifest-Datei mit einpacken, die die Main-Klasse bestimmt und dann bleibts bei einem Doppelklick auf die Jar-Datei. Das alles können die gängigen IDEs beim Export des Projektes automatisiert machen, man muss also nicht von Hand dran (auch wenn es nicht schaden würde, dann weiß man wenigstens, was da passiert und hat es mal gesehen).

Man kann auch exe-Wrapper verwenden, aber die machen nichts anderes als diese Jar in sich zu verpacken und dann auszuführen (wenn es gut läuft). Braucht man nicht.

Und mit Shift+F11 führt NetBeans keine Jar aus, sonder kompiliert das Projekt und führt es direkt aus, ohne Jar. Daraus eine Jar zu exportieren ist ein anderer Schritt.

gut dann bin ich damit zufrieden :slight_smile:

Ich habe jetzt doch noch ein Problem. Und zwar kann ich unter Win7 die .jar Datei öffnen.

Nur leider unter WinXP sagt er mir „Could not find class…“ und öffnet das Programm nicht :frowning: Warum?

Das heist im Normalfall nur, dass du den classpath noch nicht korrekt gesetzt ist. Wie rufst du denn dein Jar file unter Win7 und unter WinXP auf

Doppelklick ? :slight_smile:

Du meinst also, dass deine (ein und die selbe) Jar-Datei unter Windows7 startet und unter XP nicht mehr?
Mal mit java -jar MeinProgramm.jar gestartet und den kompletten StackTrace gelesen? Gibts da noch weitere Fehlermeldungen?

Vielleicht auch mal auf der Konsole unter W7 und unter XP “java -version” eingeben und die Ergebnisse vergleichen.

Habe es erst vor kurzem ausprobieren können.

Also ich bekomme unter Win7 folgende Meldung (Bei mir funktionierts):

java -version
java version „1.7.0_25“

java -jar xxx.jar
gibt keinen Kommentar aus. Also alles i.O.

Unter XP bekomme ich etwas anderes zu sehen:

java -version
java version „1.6.0_20“

java -jar xxx.jar
Exception in thread „main“ java.lang.UnsupportedClassVersionError: GUI: Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unkown Source)
… usw.
Could not find the main class: GUI. Programm will exit.

Leider kann ich z.Z. keine Bilder hochladen… warum? Bekomme einen Error 2038… :confused:

Kann mir jmd sagen warum ich in XP diese Meldung erhalte? Liegt das an der unterschiedlichen Java Version?

[QUOTE=izloh]
Kann mir jmd sagen warum ich in XP diese Meldung erhalte? Liegt das an der unterschiedlichen Java Version?[/QUOTE]

Genau, daran liegt es. Das Programm erfordert Version 1.7 oder höher, unter XP hast Du aber nur 1.6.

Weil du deinen Code mit Java7 kompiliert hast. Wenn du keine Java7-Features benutzt hast, kannst du deinen Code auch für Java6 kompilieren, dann läuft es auch auf deiner XP-Maschine. Ansonsten musst du auf deinem XP wohl oder übel Java7 installieren.

ich habe das automatisch über netbeans generieren lassen. Gibt es eine Option, dass ich auch mit Java7 -> Java6 Code bzw. eine jar generieren kann?

Das musst du dem Compiler mitteilen.

javac -source 1.6 -target 1.6 ...

Bei NetBeans kannst du in den Projekteinstellungen unter Compiling die entsprechenden Parameter eintragen.

Aber wie gesagt, wenn du Java 7 Features benutzt hast, dann wird das nicht klappen.

Byte-Welt-Wiki: Compiler-Level und .class-Datei Versionen (major- und minor version number)