Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hi zum 2. Mal!

Sorry, aber ich such mir noch die Finger wund und hoffe es kann mir jemand helfen!

Ich möchte mit JAVA gerne eine Batch-Datei ausführen! Wie geht das?

Also soweit bin ich schon

String cmd = "cmd /c C:\\Temp\\test.bat"

Process p = Runtime.getRuntime().exec(cmd)

Gut und schön, aber er führt die bat nicht aus!? Warum nicht? Bin langsam echt daran am verzeifeln. Andere PGMs wie Rechner oder Paint kann ich damit öffnen, auch Perlskripte kann ich ohne Probs damit starten, aber KEINE BAT.... *grumme*

Ich bitte um eure Hilfe.

MfG

Vossi

Geschrieben

Danke für deine Antwort, hab das gerade ausprobiert und leider auch ohne Erfolg. Ich bin mir ganz sicher, dass er die bat nicht ausführt, da ich dort ein mkdir eingebaut habe und er es nicht ausführt. Bei dem waitfor() bleibt er stehen und wartet eben auf die Beendigung, aber es sieht aus wie eine Endlosschleife und beendet sich net.

Geschrieben

Wenn du eine Bat ausführst wird kein DOS-Fenster angezeigt. D.h. wenn in der Bat steht:

z.B.

net name

dann bekommst du davon in der Tat nichts zurück.

Um das ergebniss zu sehen musst du den entprechenden Stream vom Process auslesen. Da steht dann genau das drin was normalerweise in der DOS Box steht.

Was soll denn deine Batch machen?

Geschrieben

Danke für die Anmerkung, aber das habe ich schon gewusst... und es brachte leider auch nichts. Ich will die DOS-Box ja nicht einmal sehen.

In meiner test.bat will ich einfach ein Verzeichnis mit MKDIR anlegen und das passiert nicht, bzw. nur dann wenn ich die bat selber aufrufe.

Ich will selber rein gar nichts mit einer bat-Datei machen. Nur hier bei uns in der Firma sind wohl noch einige Altlasten, die darüber gestartet werden und ich versuche jetzt irgendwie diese über JAVA zu starten. Nur ich kann einfach keine bat starten.

Ich bin schon mehrere Tage daran am verzeifeln. Andere Applikationen (notepad, calc etc.) und Skripte aus Perl lassen sich wunderbar starten nur eben keine *.bat!!!!

Geschrieben

Sag mal, kannst du mir auch verraten, wie ich unter JAVA das Verzeichnis wechseln kann?

C:

cd Temp

mkdir tt

das macht JAVA nicht, sonder bleibt dann unter C:\Windows!

mkdir C:\Temp\tt

dann geht das...?? kann man das auch anders lösen? Nur so rein Interesse halber?!

Geschrieben

Runtime.exec arbeitet immer auf dem angegebenen Verzeichnis. Oder dem Standardverzeichnis, falls keines angegeben ist. D. h. daß bei 3 aufeinander folgenden Aufrufen das Verzeichnis immer wieder zurückgesetzt wird.

Evtl. kannst Du statt 3 Aufrufen einen schreiben, wenn die Konsole das unterstützt.

Ansonsten klappt es wohl nur dann, wenn die Befehle in einer Batch stehen und Du diese aufrufst.

Geschrieben

Evtl. kann mir jemand helfen. Ich habe ein Programm in einer .jar-Datei und eine Batch-Datei die java anweist, eine bestimmte Klasse darin aufzurufen.

Das funktioniert allerdings nur solange man nicht über UNC-Pfade geht, also die Batch aufruft, wenn sie im Netzwerk liegt. Sie muß dann erst auf die Platte kopiert werden.

Weiß jemand, ob und wie man eine .jar im Netzwerk ausführt?

Geschrieben

Bei deiner Frage muss ich leider passen.. Sorry...

Das Problem was wohl vorherrscht, ist wohl, dass JAVA als Standardpfad C:\WINDOWS hat und dort alles ausführt, wie kann man das ändern... So ist ja nicht sicher gestellt, dass jeder befehl in der bat funzt??

Geschrieben

Egal... ist nicht weiter tragisch...

es werden halt immer nur absolute Pfade in der bat angegeben und dann läuft das auch so!

VIELEN DANK AN ALLE, die mir geholfen haben! :uli

Geschrieben
Das Problem was wohl vorherrscht, ist wohl, dass JAVA als Standardpfad C:\WINDOWS hat und dort alles ausführt, wie kann man das ändern...

Ein Blick in die Java-Referenz offenbart:

public Process exec(String[] cmdarray, String[] envp, File dir) throws IOException

Und in dir steht, rate mal ;) , das Verzeichnis in dem gearbeitet werden soll.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...