java /javaw ? Wo ist der Unterschied?

Status
Nicht offen für weitere Antworten.

Vatar

Bekanntes Mitglied
Wie der Titel schon sagt, wo liegt der Unterschied der beiden Javaaufrufe "java meineKlasse" und "javaw meineKlasse"?


Außerdem:
Wie kann ich mein Programm ohne Shell aufrufen?
Ich hab mir eine bat-Datei erstellt und mit dem Inhalt
Code:
@ECHO OFF

java meineKlasse
 
Hi,

kurz gesagt ist der Unterschied, dass wenn du eine Applikation mit java startest bekommst
du ein Konsolenfenster. Wenn deine Applikation allerdings eine GUI hat ist so ein Konsolenfenster
meistens etwas störend. Startest du mit javaw gibt es kein Konsolenfenster. Du siehst dann nur
die GUI deiner Applikation.

Sun schreibt dazu:
The javaw command is identical to java, except that with javaw there is no associated console window. Use javaw when you don't want a command prompt window to appear. The javaw launcher will, however, display a dialog box with error information if a launch fails for some reason.

gefunden auf http://java.sun.com/j2se/1.3/docs/tooldocs/win32/java.html
 
danke.
Es müsste also langen in die batch datei zu screiben:
Code:
javaw meineKlasse

exit

gibt es noch ne andere Möglichkeit (in Windows) mein Proggi möglichst einfach, ohne Konsole, zu starten
 
Ja, stelle eine *.jar - Datei her.
Die kann man mit einem Doppelklick öffnen.

(Dafür ist das Programm "jar" beim JDK mitgeliefert)

mfg Beni
 
Jo Danke.

Funktioniert soweit (das packen), aber was sind manifestdateien?
wenn ichs gepackt habe und starten will findet er meine Main-Klasse nicht

habs so gemacht

Code:
jar cvf datei.jar *.*

und

Code:
jar cvfm datei.jar *.*
bei dem aber die Fehlermeldung kam
Code:
java.io.FileNotFoundException: classes (Zugriff verweigert)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.<init>(FileInputStream.java:106)
        at java.io.FileInputStream.<init>(FileInputStream.java:66)
        at sun.tools.jar.Main.run(Main.java:123)
        at sun.tools.jar.Main.main(Main.java:904)
 
Eine Manifest-Datei beschreibt einfach, welche Klasse zuerst starten soll.

Eine Manifest kann so aussehen:
Main-Class: fightSimulator.Main
Nach dem "Main" muss noch eine neue Zeile hinein (sozusagen als Druch auf die Entertaste), was dieses Forum leider nicht erlaubt.

Und dann kann man "jar" mit diesen Argumenten aufrufen:
cmf manifest.txt fightSimulator.jar -C bin
Zum "m" muss man einfach noch die entsprechende Datei angeben (hier manifest.txt).

mfg Beni
 
Jetzt krieg ich leider diese Meldung.


Code:
Hinzuf³gen von: Planni.jarjava.util.zip.ZipException: attempt to write past end
of STORED entry
        at java.util.zip.ZipOutputStream.write(ZipOutputStream.java:265)
        at sun.tools.jar.Main.addFile(Main.java:615)
        at sun.tools.jar.Main.create(Main.java:413)
        at sun.tools.jar.Main.run(Main.java:143)
        at sun.tools.jar.Main.main(Main.java:904)

E:\Programmieren\Projects\Planni\Application>


starten tu ich mit

Code:
jar cvmf manifest.txt planni.jar *.*

Es befinden sich alle Klassen und Packages im ausführenden Verzeichnis
 
Vatar hat gesagt.:
Code:
jar cvmf manifest.txt planni.jar *.*

Richtig:

Code:
jar cvmf planni.jar manifest.txt *.*

Oder:

Code:
jar cvfm manifest.txt planni.jar *.*

Wenn du jar /? startest, kommt da nämlich:

Der Name der Manifest-Datei und der Name der Archivdatei müssen
in der gleichen Reihenfolge wie die Flags 'm' und 'f' angegeben werden.


PfM
 
Sorry, du hast natürlich recht, ich hab mich verlesen. 😳
Ich hatte den Fehler auch schon und dachte, das wäre damals das Problem gewesen.
Dann weiß ich auch nichts mehr. ???:L
 
Beni hat gesagt.:
Ja, stelle eine *.jar - Datei her.
Die kann man mit einem Doppelklick öffnen.

(Dafür ist das Programm "jar" beim JDK mitgeliefert)

mfg Beni
nicht ganz!!!
es muss ein manifest.mf datei erstellt werden in der
Code:
Manifest-Version: 1.0
Main-Class: deinhauptclass
 
Das macht keinen Unterschied, das Programm jar.exe wird die Datei auslesen, und unter einem neuen Namen speichern. Du kannst sie auch "halleluja.trallala" nennen, wenn Du willst.
 
Der Name ist egal, das stimmt.
Aber ich glaube, ich habe den Fehler 8) :

Beni hat gesagt.:
Eine Manifest kann so aussehen:
Zitat:
Main-Class: fightSimulator.Main

frantsuzov hat gesagt.:
es muss ein manifest.mf datei erstellt werden in der
Code:
Manifest-Version: 1.0
Main-Class: deinhauptclass

Am Ende muss eine Leerzeile kommen, wie Beni sagte.

@frantsuzov:
Manifest-Version ist nicht unbedingt notwendig.

@Beni:
Der Eintrag muss lauten:

[schild=11 fontcolor=000000 shadowcolor=C0C0C0 shieldshadow=1]Main-Class: fightSimulator[/schild]

und nicht fightSimulator.Main!!!
Is jedenfalls bei mir so. :wink:


Klappts damit???

PfM
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben