# .Jar-Datei erstellen für Programm mit Konsolenausgabe



## turbo90 (1. Dezember 2009)

Hallo,
ich habe für den Matheunterricht eine kleines Programm geschrieben, welches Eingabe und Ausgabe über die Konsole vornimmt.

Ich habe Eclipse benutzt und im Programm selber geht auch alles soweit. Jetzt möchte ich, um das Programm auch meinen Mitschülern zugänglich zu machen, eine .Jar-Datei erstellen.
Hier im Forum gibt es auch schon Beiträge dazu wie Bspw. dieser hier  oder dieser . 

Wenn ich die Schritte mit dem Code aus dem Forum durchführe klappt auch alles soweit, wenn ich aber mein eigenes Programm oder auch testweise einen "Hello World"-Code erstelle wird zwar eine .Jar Datei erstellt aber beim anklicken dieser passiert nichts. Es öffnet sich auch nicht das "cmd Fenster".

Bin für jegliche Hilfe dankbar, da ich gerade erst mit Java angefangen habe.

mfg


----------



## zeja (1. Dezember 2009)

Versuch mal selber ein cmd Fenster aufzumachen und dein Jar mit 
java -jar deinJar.jar
zu starten.

Wenn das klappt ist lediglich die Verknüpfung womit die Jars geöffnet werden falsch.


----------



## turbo90 (1. Dezember 2009)

zeja hat gesagt.:


> Versuch mal selber ein cmd Fenster aufzumachen und dein Jar mit
> java -jar deinJar.jar
> zu starten.
> 
> Wenn das klappt ist lediglich die Verknüpfung womit die Jars geöffnet werden falsch.



Hallo danke für deine Antwort. Das klappt soweit.

 Mit was muss ich das denn Verknüpfen?


----------



## turbo90 (4. Dezember 2009)

Könnte mir bitte wer helfen das Problem besteht leider weiterhin

Wenn ich das Programm:
public class Main {

	 public static void main (String [] args)  {
		 System.out.println("HALLO ");

	 }
    }

Versuche zu einer .Jar Datei zu machen, dann komm immer eine Fehlermeldung in der Konsole: Exception in Thread "main" java.lang.NoClassDefFoundError

Das kann ja wohl nicht so schwer sein daraus eine lauffähige Datei zu machen. Ich bin für jede Hilfe dankbar


----------



## deepthroat (4. Dezember 2009)

Hi.





turbo90 hat gesagt.:


> Wenn ich das Programm:
> public class Main {
> 
> public static void main (String [] args)  {
> ...


Ich dachte über diesen Punkt bist du schon längst hinaus und das Jar läuft? Warum geht's denn jetzt doch wieder nicht?

Zu deinem ursprünglichen Problem: wenn du ein Jar auf einem anderen Rechner ausführen willst, bist du auf die Einstellungen dort angewiesen (die du nicht kennst).

Normalerweise werden Jars aber mit javaw.exe ausgeführt wenn man sie doppelklickt. Das ist die grafische Variante der JVM und deshalb wird kein Konsolenfenster angezeigt. Man müßte die Einstellung so ändern, dass java.exe für Jars aufgerufen wird. Das erzeugt dann allerdings auch für alle anderen Jars ein Konsolenfenster - und davon müßtest du erstmal alle deine Freunde überzeugen.

Als Alternative kann man ein Batch-Skript erstellen welches die Jar Datei entsprechend starten würde.

Gruß


----------



## zerix (4. Dezember 2009)

Hallo,

was hast du denn in der Manifest-Datei stehen?

Gruß

Sascha


----------



## turbo90 (4. Dezember 2009)

deepthroat hat gesagt.:


> Hi.
> Ich dachte über diesen Punkt bist du schon längst hinaus und das Jar läuft? Warum geht's denn jetzt doch wieder nicht?
> 
> Zu deinem ursprünglichen Problem: wenn du ein Jar auf einem anderen Rechner ausführen willst, bist du auf die Einstellungen dort angewiesen (die du nicht kennst).
> ...



Wie würde eine solche Batch datei denn aussehen?

Die Manifest Datei:
Manifest-Version: 1.0
Sealed: true
Main-Class: Main


----------



## deepthroat (4. Dezember 2009)

turbo90 hat gesagt.:


> Wie würde eine solche Batch datei denn aussehen?


Im einfachsten Fall:

```
@java -jar deinProgramm.jar
```
Dabei kann man davon ausgehen, das Java im Pfad ist. Ansonsten könnte man den Installationsordner auch noch aus der Registry ermitteln.

Dein Jar muss dann im gleichen Ordner sein, wie die Batchdatei.

Gruß

\edit: 





turbo90 hat gesagt.:


> Die Manifest Datei:
> Manifest-Version: 1.0
> Sealed: true
> Main-Class: Main


Und wie ist der Inhalt des Jars? Ist das Manifest auch drin? Ist die .class Datei drin?

Gruß


----------

