# Eigene Java-Programm ohne hilfe des CMD starten



## Crashbreaker (2. Jun 2011)

Hallo Leute,

ich wollte fragen, wie ich mein Javaprogramm den ich mit SWT programmiere so erstelle, dass ich die Startdatei einfach ausführen kann ohne diese mit *.cmd Datei zu starten?

So wie bei C++ Software das mit dem *.exe ist, gibt bzw. gab es doch ähnliche Anwendung für Java...
Da hatte ich die entsprechende Anwendung in SWT / Swing Window ausgesucht und dann konnte ich es einfach ohne den Command Datei starten ...

Wie müsste ich hier vorgehen um das zu verwirklichen?

Bitte um Hilfe!

MfG
Daniel


----------



## F.S.WhiTeY (2. Jun 2011)

Du musst es compilieren und zu einer executable JAR machen oder du benutzt ne vernümpftige IDE in der du auch einfach so laufen lassen kannst. z.B. Netbeans


----------



## Final_Striker (2. Jun 2011)

http://www.java-forum.org/spezialthemen/18384-6-varianten-java-programme-starten-jar-bat-exe-cd.html


----------



## Crashbreaker (2. Jun 2011)

Ich danke für eure schnelle Antwort.
Doch soweit ist es schon zwar richtig aber das ist es nicht was ich suche.

Und zwar meine ich das so.

Wenn ich in Eclipse mein Java-Projekt begonnen habe (Swing/SWT) und noch nicht viel programmiert habe, konnte ich parallel im Projektverzeichnis das Programm ohne jegliche Hilfe und Unterstützung einfach so starten.

Dazu müsste doch in dem neuen SWT auch eine Möglichkeit geben?!?

Bitte um Hilfe!

MfG
Daniel


----------



## Asgar13 (3. Jun 2011)

Eclipse macht da nichts anderes, als dein Script zu compilieren und dann auszuführen, der das Programm startet.(Bei Fehler macht er es nicht)

Du kannst eine .bat-Datei bauen, wo der Compilierbefehl drin steht und dann als zweites der Ausführbefehl, wenn du dann Doppelklick machst nimmt er deinen aktuellen (fertig/unfertigen) Quellcode und führt ihn aus(solange keine Fehler drin sind).

Den Compilierbehl und den Ausführbefehl kann man sich irgendwo bei Eclipse ausgeben lassen.

Wenn das Projekt fertig ist mach dein Programm, die wie oben erwählte Methode zu einer exe-jar


----------



## Tomate_Salat (3. Jun 2011)

Wenn du schon mit SWT arbeitest, könntest du dir auch RCP anschauen. Damit kannst du dir eine .exe (oder app,...) erstellen lassen.


----------



## Spacerat (3. Jun 2011)

http://www.java-forum.org/spiele-multimedia-programmierung/119035-lwjgl-runnable-jar.html#post769412

Mal schauen, wieviele User mich jetzt wegen meiner Superidee (steht im Edit) wieder auseinander nehmen :lol:
So aber funzt es schonmal mit DLLs. Für Klassen aus weiteren Jar-Archiven benötigt man aber immernoch einen (URL)Classloader.


----------



## Crashbreaker (4. Jun 2011)

Asgar13 hat gesagt.:


> Eclipse macht da nichts anderes, als dein Script zu compilieren und dann auszuführen, der das Programm startet.(Bei Fehler macht er es nicht)
> 
> Du kannst eine .bat-Datei bauen, wo der Compilierbefehl drin steht und dann als zweites der Ausführbefehl, wenn du dann Doppelklick machst nimmt er deinen aktuellen (fertig/unfertigen) Quellcode und führt ihn aus(solange keine Fehler drin sind).
> 
> ...



Ich danke für dein Beitrag und für die Mühe ... doch irgendwie schweift es vom Thema ab oder du hast nicht verstanden was ich meine.

Mir ist es klar, dass es mit CMD (Patch-Datei) mein Java-Programm starten kann. Wie das geht, weiß ich auch ...
Doch das war nicht mein Anliegen!

Es gibt auf jedenfall eine Anwendung, wenn man diese bei Swing erstellt (per Mausklick, in Eclipse bei der Projekt Erstellung) ... so das man ein Windowsfenster vor sich hat und diese dann später, wenn Eclipse Beendet ist und ich mein Java-Programm, ähnlich funktioniert wie als ob ich eine *.exe Datei hätte, diese dann einfach per doppelklick starte.

Sprich, wenn es fertig ist, dass ich ohne Eclipse einfach mit doppelklick auf die Javadatei mein Java-Programm starte.

MfG
Daniel


----------



## Crashbreaker (4. Jun 2011)

Tomate_Salat hat gesagt.:


> Wenn du schon mit SWT arbeitest, könntest du dir auch RCP anschauen. Damit kannst du dir eine .exe (oder app,...) erstellen lassen.



Wie meinst du das denn genau?
Ich habe 0 Erfahrung mit RCP ...

MfG
Daniel


----------



## Crashbreaker (4. Jun 2011)

Spacerat hat gesagt.:


> http://www.java-forum.org/spiele-multimedia-programmierung/119035-lwjgl-runnable-jar.html#post769412
> 
> Mal schauen, wieviele User mich jetzt wegen meiner Superidee (steht im Edit) wieder auseinander nehmen :lol:
> So aber funzt es schonmal mit DLLs. Für Klassen aus weiteren Jar-Archiven benötigt man aber immernoch einen (URL)Classloader.



Geht zwar in die richtige Richtung, doch ich bin immer noch Radlos und verwirrt ...
Muss ich den Quelltext der in deinem Link ist in mein Projekt Kopieren oder wie verstehe ich das?

Bitte einmal für Anfänger erklären!

MfG
Daniel


----------



## Gastredner (4. Jun 2011)

Crashbreaker hat gesagt.:


> Es gibt auf jedenfall eine Anwendung, wenn man diese bei Swing erstellt (per Mausklick, in Eclipse bei der Projekt Erstellung) ... so das man ein Windowsfenster vor sich hat und diese dann später, wenn Eclipse Beendet ist und ich mein Java-Programm, ähnlich funktioniert wie als ob ich eine *.exe Datei hätte, diese dann einfach per doppelklick starte.


Ich weiß ja nicht, was du mit "Windows-Fenster" meinst, aber das Ergebnis klingt nach einer .jar:
http://www.java-forum.org/spezialthemen/18384-6-varianten-java-programme-starten-jar-bat-exe-cd.html (Variante 1)
Du musst womöglich das Manifest der .jar-Datei per Hand nachbearbeiten und den Ort der SWT-Bibliotheken eintragen müssen. Mehr dazu hier: SWT: Executable JARS and SWT Dependencies


----------



## Spacerat (4. Jun 2011)

Ja, der Quelltext muss bisher noch übernommen werden. Er macht bisher nichts weiter, als den Pfad, in welchem du deine Javaanwendung ausführen willst zum Bibliothekspfad der JVM hinzuzufügen. Fortan kann die Anwendung auch JNI-DLLs aus diesem Pfad beziehen. Für das Nachladen von Klassen aus weiteren Archiven wird aber nach wie vor ein URLClassloader benötigt. Für deine Zwecke ist es in dieser Form aber noch ungeeignet, weil die Distribution immer noch aus mehreren Dateien besteht. Was also so interessant an dem "Patch"?
Denkbar wäre nun eine StartupKlasse, die zunächst für die Anwendung erforderlichen DLLs und Jararchive, welche sich natürlich im Hauptarchiv befinden müssen, in Unterordner des aktuellen Pfades entpackt und anschliessend die Klassen- und Librarypfade der Anwendung auf diese Weise neu setzt. Sozusagen eine Anwendung, die ihre Bibliotheken mitbringt.


----------

