jar ausführen über batch ?



  • hi

    was muß ich machen damit ich den syntax einer jar über eine batch ausführen kann ?
    ich dachte man schreibt den syntax: java -jar archiv.jar einfach in eine datei, benennt die whatever.bat und dann läuft das.geht aber nicht.wie bekomm ich das hin ?
    das prob ist das auf vielen rechnern eine verknüpfung von jar und WinAce besteht,welche beibealten werden soll. bei doppelklickt wird aber nun das archiv geöffent anstatt ausgeführt. gibts sonst irgendein trick ?thx for answers

    pain


  • Mod

    Schreib doch mal folgendes in die Bat-Datei:

    java -cp archiv.jar Hauptklasse



  • Eine Batch-Datei ist nicht plattformunabhängig. 😡 😡 😡



  • Nimm doch gleich einen Java-Compiler, wenn du sowas nötig hast.


  • Mod

    Ist ja nur ne Starthilfe für das Programm. Dahinter steht ja immernoch die plattformunabhängige Jar-Datei. Das Programm bleibt somit plattformunabhängig, da man das Programm auch ohne die Bat-Datei starten kann.

    IMHO spricht nichts gegen eine Bat-Datei. Ich nutze sowas selbst manchmal.



  • Wer jar-Dateien mit WinACE oder anderen Packern verknüpft hat ist es eh nicht Wert dein Programm zu benutzen.


  • Mod

    Original erstellt von <Felix>:
    Wer jar-Dateien mit WinACE oder anderen Packern verknüpft hat ist es eh nicht Wert dein Programm zu benutzen.

    *g*
    ...stimmt auch wieder! 🙂



  • man, machmal warte ich tage auf ne antwort und jetz gleich so viel*freu*

    @Gregor: dein befehl fünzt leider nicht.was macht der genau und was mach ich falsch ???
    die mein klasse befindet sich im packaeg Project.habe mittlerweile alle syntaxmöglichkeiten ausgelotet und komm nicht weiter.wäre schön wenn du dazu noch mal kurz was sagen könntest.danke

    pain

    nachtrag: ok, dumm von mir.cp= class path.nur so. ich will doch ne jar entpacken, muß da nicht auch was mit -jar in der batch stehen ? habs zwar schon versucht, aber geht trotzdem nicht.

    [ Dieser Beitrag wurde am 29.01.2003 um 09:25 Uhr von pain_md editiert. ]



  • Ehrlich gesagt weiss ich gar nicht was Du mit den .jar-Dateien immer hast 🙂 Wenn Du Dein Programm in ein JAR gepackt hast und es ausführen willst musst Du in das Verzeichnis der .jar-Datei einfach

    java -jar <deinArchiv>.jar
    

    aufrufen und gut ist. Besteht Dein Programm jedoch aus mehreren jars musst du jede einzelne jar-Datei in den CLASSPATH mit aufnehmen und die Hauptklasse des Programmes aufrufen. Gestern beispielsweise habe ich mit dem Tejina-Programm von incors.de ein wenig experimentieren wollen; leider haben die keine Starthilfe mitgeschickt. Also das Programm besteht aus mehreren jars nämlich

    data.jar
    jnlp.jar
    lax.jar
    tejina.jar (hier befindet sich die Startklasse 'Tejina.class')
    Ausserdem sind noch ein paar properties-Dateien nötig und Bilder etc.

    Nun geht man her und gibt folgendes ein

    java -cp data.jar;jnlp.jar;lax.jar;tejina.jar;. Tejina

    und dann rennt das Programm ...

    Hast Du hingegen nur eine korrekt erzeugte jar-Datei reicht ein Wechsel in das Verzeichnis aus um einen Aufruf wie beispielsweise java -jar Tejina.jar abzusetzen und das Programm zu starten. Was eine korrekt erzeugte jar-Datei ist hast du in der FAQ bereits gelesen und ja auch selber noch dokumentiert.

    [ Dieser Beitrag wurde am 29.01.2003 um 12:29 Uhr von CengizS editiert. ]



  • wenns denn nur so einfach wäre....
    das prob ist folgendes. ich muß irgendne möglichkeit finden das man auf irgendwas doppelklickt macht und es läuft.prinzipiel ginge es ja per doppelklick auf das jar archiv. ABER: wenn irgendein verrückter jar's mit winACE o.ä. verknüpft hat hab ich verloren.
    deswegen dachte ich das ich den java befehl in ein batch ( als .bat) datei packen kann. das problem ist nun wenn ich diese batch dann aufrufe diskutiert java mit mir das es meine main nicht gibt. tippe ich DEN GLEICHEN BEFEHL in der konsole ein geht es ohne probs.
    ich suche jetz nach einer möglichkeit das ich per doppelklick auf eine batch das prog ausführen kann.
    es geht wirklich nicht anders. prog is für die uni und ich möchte keinem prof erklären müssen was eine dateiverknüpfung ist ;-). thats the problem.
    ja, sont noch ideen ? ich peil immer noch nicht warum der befehl über eine batch nicht läuft aber in der konsole.....

    pain



  • cd X:\PfadzurJarDatei\
    jar ....



  • geht auch nicht. hier vielleicht nochmal die fehler meldungen.

    in programm.bat steht: java -jar CharacterAniamtion.jar

    Fehlerausgabe:

    Exception in thread "main" java.util.zip.ZipException: das system aknn die angegebene datei nicht finden
    at java.util.zip.ZipException.open(Nativ Method)
    at java.util.zip.ZipException.<init>(ZipFile.java:112)
    at java.util.jar.JarFile.<init>(JarFile.java:117)
    at java.util.jar.JarFile.<init>(JarFile.java:55)

    nochmal: wenn ich das selbe kommando von Hand in die Shell eintippe gehts !!!
    aber eben nicht wenn ich es in die programm.bat schreibe und diese
    dann ausführe.

    in programm.bat steht: java -cp CharacterAniamtion.jar Main
    Fehlerausgabe:

    Exception in thread "main" java.lang.NoClassDefFoundError: Main

    wiederum: gebe ich exact die gleiche anweisung in der Shell dann läufts.

    ich hoffe irgendwer hat eine idee und kann mir weiterhelfen.danke

    pain



  • Sieht danach aus als ob der CLASSPATH nicht auf die libs des JDKs verweist (im Batch-Betrieb)



  • äh, das da was mit den batch nicht hinhaut war mir schon klar ;-).
    suche aber immer noch ne lösung....

    pain



  • schreib doch ein kleines c++ progrämmchen was java mit deiner jar startet



  • Original erstellt von pain_md:
    **Fehlerausgabe:

    Exception in thread "main" java.util.zip.ZipException: das system aknn die angegebene datei nicht finden
    at java.util.zip.ZipException.open(Nativ Method)
    at java.util.zip.ZipException.<init>(ZipFile.java:112)
    at java.util.jar.JarFile.<init>(JarFile.java:117)
    at java.util.jar.JarFile.<init>(JarFile.java:55)
    **

    Klingt für mich eher, als würde deine programm.bat in einem anderen Ordner stehen.
    ist das denn bei dir in etwa so angeordnet:
    C:\pfadZurJar\programm.bat
    C:\pfadZurJar\CharacterAniamtion.jar

    Inhalt der programm.bat:
    java -jar CharacterAniamtion.jar

    Wenn das so angeordnet ist, muß es eigentlich laufen.



  • jo is genauso angeordnet, und müßte eigentlich laufen. tut es aber nicht...
    *verzweifel* ob ich das wohl je hinbekomme ?

    pain


  • Mod

    Original erstellt von pain_md:
    **
    in programm.bat steht: java -cp CharacterAniamtion.jar Main
    Fehlerausgabe:
    **

    Hast du das nur hier falsch geschrieben, oder auch in deiner Bat-Datei?



  • wenn du das JAR nur unter WIN starten willst, dann kannst du auch einen EXE Starter einsetzen.

    der "JLaunch" ist ein sogenannter EXE starter für JAR Dataien, s. www.amdesign.org

    mfg.

    Andreas



  • Hi,

    vielleicht sollte das Java-Forum in JAR-Form unbenannt werden wenn man sich mal so die letzten Threads angeguckt 🙂

    Weiß jetzt net ob's hier hin passt.
    Was ich noch wichtig finde zu erwähnen bei der Manifest Datei
    ist der "Class-Path :"-Parameter. Wenn man eine Anwendung hat die aus mehreren JARs besteht kann man sie dennoch mit einem doppelklick bzw "java -jar" gestartet werden. (java -cp ist net nötig)

    Dazu muss man nur die relative URL aller benötigten JARs in die Manifest-Datei des Start-JARs a Class-Path-Parameter eintragen.

    Die Spezifikation von JAR- und Manifest-Dateien ist auch auf der Sun-Seite http://java.sun.com/j2se/1.4.1/docs/guide/jar/jar.html
    wurde (denke ich) auch noch nirgends erwähnt.

    bis dänn, O'Dog


Anmelden zum Antworten