.jar aus batch file starten

3 Antworten

java -jar C:\developsvn\nslookup\nslookup.jar

ist richtig, und startet nslookup.jar genau 1x. Entweder hast Dus in ne Schleife geschrieben, oder die .jar enthält eine Schleife, welche die vielen Prozesse startet. Gib die obige Zeile doch mal in die CMD ein, wenn es dann nur einen Prozess startet, liegt es an der Bat, wenn nicht, dann an der .jar.

Es könnte sich dann um (ungewollt) schlampige Programmierung oder (gewollt) eine Forkbomb http://de.wikipedia.org/wiki/Forkbomb handeln.

hi erstmal^^

lasst mich ne runde klugscheißen xD

das folgende bezieht sich auf die antwort von kosmopolit:

direkt starten kann man nur native windows-files also typischerweise .exe .com .bat, aber auch noch einige andere (zb. bildschirmschoner .scr)..

nun ist eine .jar aber nur ein java archive, dessen inhalt interpretiert wird.. um die zu starten - sollte das jar executable sein, dh. im manifest dieser eine MainClass angegebn -, muss man den interpreter aufrufen und die .jar diesem übergeben, genauso wie man es bei php files auch machen würde.

bei java ist es nun so wie oben schon korrekt steht: java -jar "pfad-zu-datei.jar"

nun konkret zu deiner frage:

dieser befehl sollte nun das programm einmal starten.. wenn nun soviele prozessinstanzen erzeugt werden, dann gibt es zwei/drei möglichkeiten:

  • es könnte sein, dass die batch (.bat) wiederholt aufgerufen wird, womöglich dadurch, dass du sie selbst in sich aufrufst:D

  • es könnte sein, dass du diesen befehl in einer schleife stehen hast

  • es könnte sein, dass dieses java-programm sich forked, dh dass das programm sich nun wiederholt (in einer schleife) selbst aufruft, mit gleichen oder anderen parametern.. dies könnte erstens von schlampiger programmierung, zweitens von der (böswilligen) eigenschaft als forkbomb(steht ja auch schon in der antwort cypherphunks^^) kommen oder drittens - nicht zu vernachlässigen - davon herrühren, dass dieses programm einfach mehrere prozesse beöntigt..

dh. im klartext, das programm könnte statt mehrere threads (multithreaded) mehrere prozesse starten, was bei einigen applikationen durchaus vorkommt (zb. apache webserver in entsprechender konfiguration), und vor- und nachteile aufweist..

dies könnt auch von falschen paramtern oder falscher konfiguration kommen.. sind denn bei diesem programm noch andere dateien dabei? dann musst du nämlich zuerst in das installationsverzeichnis wechseln..

kommt dieses forking denn außer kontrolle oder hört es iwann auf?

um grob heraus zu finden was passiert, kannst du den befehl mal auf der cmdline ausprobieren, wenns dann geht, liegt es an dir (deiner batch^^)

auf jdenfall würde ich dir nen gescheiten taskmanager empfehlen (keine werbung) wie systemexplorer.. (portable version: http://systemexplorer.net/downloadp.php )..

dann kannst du nämlich schauen, erstens mit welchen paramtern java gestartet wird und - noch viel wichtiger - von welchem prozess aus (treeview).. dann kannst du sehen, ob deine batch x-mal java startet, ob java sich x-mal selber startet (und wenn ja, ob nur der mutterprozess oder auch die kindprozesse.. wenn ich die kindprozesse nämlich auch xmal neu starten, dann hast du es höchstwahrscheinlich mit ner forkbomb zu tun) oder ob deine batch sich xmal selber startet oder xmal gestartet wird...;)

viel spaß noch bei der fehler suche^^

lg jojo


jonesboy96  09.03.2011, 15:41

**** oben meinte ich natürlich java -jar "pfad-zu-datei.jar"

ich dachte für sowas gibts diese codefunktion, aber anscheined funzt die nich, wenn anführungs zeichen drinne sind..:D was solls

0

früher war es so, dass man nur .bat, .exe, .com aus einem batch-file starten konnte. mit .jar bin ich überfragt, aber bei nickles.de weiss es bestimmt jemand


Cypherpunks  08.03.2011, 11:27

Man kann alles aus einer .bat starten, das man sonst auch starten kann - das war schon immer so..

0
yobabyyobabyyo  08.03.2011, 22:35

Und was ist java.exe denn deiner Meinung nach?

Kleiner Tipp: Schau mal auf die Endung

0