jar ausführen über batch ?


  • 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



  • @Gregor: ne , so wie ichs hier geschrieben hab stehts auch in mein prog.
    was is daran falsch ? syntax is eigentlich von dir 🙂

    pain

    ps: mit dem luncher is ja eigentlich super, nur schreibt der mir pfad und namen meiner applikation vor...und das kann ich leider nicht hinnehmen, leider.

    kennt sonst wer noch progs die java ausführen ? unter was sucht man da bei google ??? (google: suche progs die meine jar über eine exe ausführen ???? ;-))

    @gregor: kann es sein das du mal dolle mit c++ warst ? da kann man doch auch was regeln oder ? leider sind meine kenntnisse so gut wie erloschen. kannste mal kurz was zu sagen ? (vielleicht hast ja sogar code ??? danke

    [ Dieser Beitrag wurde am 30.01.2003 um 09:01 Uhr von pain_md editiert. ]



  • Action Rückruf: Aus mir unerfindlichen Gründen geht es auf einmal, wird wohl an der Mondphase liegen 😉
    Allerletzte Frage: Beim starten wird ja ein Fenster aufgerufen. gibt es eine möglichkeit dieses nicht anzeigen zu lassen bzw das nach dem anzeigen zu minimieren ? Danke.

    pain


  • Mod

    Du hattest oben geschrieben :

    java -cp CharacterAniamtion.jar Main

    Für mich sieht das falsch aus. Ich denke nicht, dass du deine Jar-Datei so genannt hast. 🙂



  • Benutze statt java.exe javaw.exe und alles wird gut 🙂


Anmelden zum Antworten