cmd öffnen und Befehl übergeben

Status
Nicht offen für weitere Antworten.

beere

Mitglied
Hallo!

Ich druchsuche schon nun seit Stunden sämtliche Foren und irgendwie komme ich nicht weiter.

Ich habe folgenden Source Code:

Code:
String cmdBefehl = "cd c:\\xmlimport\\ && xmlbatch test.xml";
Process p =  Runtime.getRuntime().exec("cmd /c" + cmdBefehl);

--> xmlbatch ist eine exe-Datei, der als Parameter eine xml-Datei mitgegeben werden muss.

Der cmdBefehl funktioniert, wenn man ihn so in dem commander eingibt.

Was muss ich tun, damit das ganze auch unter Java funktioniert??
Ich bekomme keine Fehlermeldung. Das commander Fenster
öffnet sich kurz und dann ist das Programm auch angeblich schon fertig.

Ich weiß einfach nicht mehr weiter und brauche dringend Hilfe.

Gruß beere
 

AlArenal

Top Contributor
Schau mal in Ruhe in deinen Code und verrat mal der Kommdozeile, was sie mit "/ccd c:\\xmlimport\\ && xmlbatch test.xml" anfangen soll ;)
 

Oni

Top Contributor
ist nur ne idee habs selbst noch nicht probiert.
vielleicht gibt es probleme weil du kein leerzeichen dazwischen hast.
Code:
String cmdBefehl = "cd c:\\xmlimport\\ && xmlbatch test.xml";
Process p =  Runtime.getRuntime().exec("cmd /c " + cmdBefehl); // <-- geaendert  nach dem /c ein leerzeichen
 

beere

Mitglied
Na damit kann die Kommandozeile nix anfangen, dass stimmt schon.

also müsst ich ja so den Prozess starten:

Process p = Runtime.getRuntime().exec("cmd cd C:\\xmlimport\\ && xmlbatch bank21_org_kam.xml");

Da passiert jedoch auch nix......*zweifel*
 

beere

Mitglied
Yepp, wenn ich den Befehl in der Kommandozeile eingeben, dann wird
die exe gestartet. Durch das && werden der Befehl cd und das starten der exe miteinander
verknüpft.
 

The_S

Top Contributor
gut, dann mach ma

Code:
String cmdBefehl = "start cd c:\\xmlimport\\ && xmlbatch test.xml";
 

Ilja

Bekanntes Mitglied
du mußt cd dir und den exec-befehl separieren ;)

soweit ich weiß, kann man workdir für ecec setzen ...
 

beere

Mitglied
Code:
String cmdBefehl = "start cd c:\\xmlimport\\ && xmlbatch test.xml";
Process p =  Runtime.getRuntime().exec("cmd /c " + cmdBefehl);

Wenn ich das mache, dann bleibt das cmd Fenster offen und nix passiert.


Code:
String cmdBefehl = "start cd c:\\xmlimport\\ && xmlbatch test.xml";
Process p =  Runtime.getRuntime().exec("cmd " + cmdBefehl);


Und so passiert wieder rein gar nix...also Fenster blinkt kurz auf, aber die
xmlbatch.exe wird nicht gestartet.
 

The_S

Top Contributor
Für was benötigst du das &&? Sry, hab ich noch nie auf ner Windows-Konsole (sprich CMD) gesehen. Was macht &&?
 

beere

Mitglied
Ilja hat gesagt.:
du mußt cd dir und den exec-befehl separieren ;)

soweit ich weiß, kann man workdir für ecec setzen ...


Was muss ich separieren?? Der Befehl funktioniert doch so im cmd......
Dachte man kann den cmd starten und dann direkt den Befehl mit übergeben
 

beere

Mitglied
Hobbit_Im_Blutrausch hat gesagt.:
Für was benötigst du das &&? Sry, hab ich noch nie auf ner Windows-Konsole (sprich CMD) gesehen. Was macht &&?


Also wenn ich die console starte, dann befinde ich mich ja irgendwo.

Dann wechsel ich in das verzeichnis xmlimport unter c:

befinde ich mich in dem verzeichnis rufe ich xmlbatch auf und sag ihm er
soll die xml-datei mit dem programm bearbeiten.
 

The_S

Top Contributor
Jo, war mir schon klar. Nur was macht das && speziell?

Würde net auch ein

Code:
C:\pfad\zur\datei\datei.exe parameter

in der Konsole genügen?
 

beere

Mitglied
KSG9|sebastian hat gesagt.:
Code:
Process p =  Runtime.getRuntime().exec("cmd /c c:\\xmlimport\\xmlbatch.bat test.xml");


xmlbatch ist eine exe und keine batch Datei .... so habe ich es schon ausprobiert.

Aber es öffnet sich immer nur kurz das Konsolenfenster und
die exe wird nicht ausgeführt.

Laut ReadMe von xmlbatch muss jedoch keine Dateierweiterung angeben
werden.
 

beere

Mitglied
Hobbit_Im_Blutrausch hat gesagt.:
Jo, war mir schon klar. Nur was macht das && speziell?

Würde net auch ein

Code:
C:\pfad\zur\datei\datei.exe parameter

in der Konsole genügen?

Ja genau das habe ich auch schon probiert.....aber es will einfach nicht :-(

in der Konsole klappt jeder befehl, sofern ich ihn per Hand eingebe
aber unter java will es einfach nicht klappen.
 

The_S

Top Contributor
[edit] Hab den ganzen Post ma editiert ;)

[edit2] statt .bat .exe

Code:
Process p =  Runtime.getRuntime().exec("cmd /c start c:\\xmlimport\\xmlbatch.exe test.xml");

oder

Code:
Process p =  Runtime.getRuntime().exec("cmd /c start \"\" c:\\xmlimport\\xmlbatch.exe test.xml");

oder

Code:
Process p =  Runtime.getRuntime().exec("cmd /c start \"\" \"c:\\xmlimport\\xmlbatch.exe test.xml\"");

oder

Code:
Process p =  Runtime.getRuntime().exec("cmd /c start \"c:\\xmlimport\\xmlbatch.exe test.xml\"");

oder

Code:
Process p =  Runtime.getRuntime().exec("cmd /c start \"\" \"c:\\xmlimport\\xmlbatch.exe\" test.xml");

oder

Code:
Process p =  Runtime.getRuntime().exec("cmd /c start \"c:\\xmlimport\\xmlbatch.exe\" test.xml");

Eins von denen geht! Ich weiß nur net genau wie das mit der Parameterübergabe funktioniert, deswegen mal ein paar "Ratebeispiele" ;). In Anführungszeichen setzen musste des wenn Leerzeichen enthalten sind. Die Anfänglichen "" braucht man eignetlich nur bei Ordnern, aber wie gesagt => Parameter kA wie die Syntax genau aussehen muss
 

beere

Mitglied
Okay so funktioniert es nicht.

c:\xml_import\xmlbatch.exe test.xml


es muss erst in das verzeichnis xmlimport gewechselt
und dann
xmlbatch test.xml ausgeführt werden.
 

beere

Mitglied
Aber wie gesagt der cmdBefehl funktioniert ja, sofern ich ihn per Hand in
die Konsole eintippe.

Er funktioniert nur nicht, wenn ich die Konsole mit Java aufrufe.

Process p = Runtime.getRuntime().exec("cmd /c dir" );

Wenn ich diese CodeZeile habe, wofür steht dann das /c ??
das habe ich nirgendwo erklärt gefunden.
 

Ilja

Bekanntes Mitglied
such im forum nach exec
es ist käse, was ihr da macht!

du mußt in java nicht "cd" benutzen... es gibt dazu eine methode, die das arbeitsverzeichnis angibt!

dann müsstest du nur noch "deine.exe parameter" aufrufen!
 

beere

Mitglied
Das Arbeitsverzeichnis bringt mir nix, ich muss direkt in das Verzeichnis
gehen und in diesem Verzeichnis nicht die exe starten sondern nur
den Befehl aufrufen.

Also kann ich nicht den cmd starten und den Befehl
mit übergeben, also so wie ich ihn per Hand im cmd eingeben ?!

Dann muss ich das anders lösen.

Ich habe schon alle Beiträge zu exec gelesen und nix gefunden.
 

beere

Mitglied
@Hobbit

Ja deinen letzten Post habe ich gesehen....die meisten
Sachen habe ich schon probiert, aber ich versuche es einfach
mal weiter.

Also wie gesagt es müssen zwei Befehle sein.
Erst in das verzeichnis wechseln und dann die xmlbatch aufrufen.
 

The_S

Top Contributor
Irgendwie scheinst du da ganz gewaltig zu pfuschen oder oder dein Fehler liegt irgendwo anders. Hab mir gerade mal (weil dein Prob für mich langsam net mehr nachvollziehbar wird) ne Test-Applikation geschrieben:

Code:
import java.io.*;

public class ExecTest {
	
	public static void main(String[] args) {
		
		try {
			Runtime.getRuntime().exec("cmd /c start C:\\WINNT\\NOTEPAD.EXE C:\\WINNT\\ntbtlog.txt");
		}
		catch (IOException e) {
			e.printStackTrace();
		}
	}
}

Und dieser Code öffnet ohne Probleme NOTEPAD.EXE in C:\WINNT und übergibt ihm die Datei ntbtlog.txt im Verzeichnis C:\WINNT als Parameter. => Notepad wird mitsamt ntbtlog.txt geöffnet.

Und jetzt kommst du ;)
 

mischer

Aktives Mitglied
Hi,

hast du es schonmal mit Runtime.exec(String[] cmdarray); versucht?

Du knallst ihm einfach beide Befehle nacheinander hin.

Meiner Mainung nach sollte aber auch Runtime.exec.(String command, String[] envp, File dir); funtionieren. Du gibst ihm einfach in dir das Verzeichnis an in dem er das ausführen soll.
 

Ilja

Bekanntes Mitglied
mischer trifft den nagel auf den kopf ;)

@hobbit

&& ist ein befehlseparator unter dos (wobei ein einfaches & reicht!!!)

cd bla & my.exe param
führt zuerst cd bla aus
und dann my.exe param

die frage ist, ob java das so unterstützt... zu dumm, dass ich das hier nicht selbst ausprobieren kann... (firmenrechner!)
 

The_S

Top Contributor
Ilja hat gesagt.:
mischer trifft den nagel auf den kopf ;)

@hobbit

&& ist ein befehlseparator unter dos (wobei ein einfaches & reicht!!!)

cd bla & my.exe param
führt zuerst cd bla aus
und dann my.exe param

die frage ist, ob java das so unterstützt... zu dumm, dass ich das hier nicht selbst ausprobieren kann... (firmenrechner!)

Ah, danke. Aber in diesem Fall müsste wohl auch der vollständige Dateipfad vor der exe reichen. Damit könnte er auf && verzichten und es ist wurst ob Java das unterstützt ;). Wenn ich mal Zeit hab probier ichs kurz aus.
 

beere

Mitglied
Also entweder ich bin zu doof oder dieses sch** xmlbatch programm
hat ne große Macke........krieg zu viel.

Also mit dem winnt das funktioniert bei mir auch super.

Aber irgendwie klappt des mit dem anderen exec Befehl auch nicht.

Zumindestens sagt er mir immer, das er die Datei nicht findet.
 

Ilja

Bekanntes Mitglied
das problem ist, dass die *.xml auch dann einen absoluten pfad braucht!

generäll sollte man nicht mit absoluten pfaden arbeiten (oder diese in eine externe *.cfg/ini packen)
 

thE_29

Top Contributor
Das zB geht bei mir

Code:
    try{
      Runtime.getRuntime().exec("cmd /c c: & cd C:\\JNI\\ImageTool\\Debug & ImageTool.exe");
    }
    catch(Exception ex)
    {
      ex.printStackTrace();
    }

Er wechselt ins Verzeichnis und führt die exe aus!

Schonmal dran gedacht das der gar nicht auf C: die Konsole startet und somit der cd Befehl gar net klappt?? ;)
 

beere

Mitglied
ich weiß, dass man nicht mit absoluten Pfäden arbeitet, aber in diesem Fall ist es notwendig!
Da die xml Dateien vorher von mir dorthin geschreiben werden.

Aber auch mit fester Pfadangabe passiert nix.
 

The_S

Top Contributor
Poste doch bitte mal folgendes:

- deinen jetztigen genauen Aufruf
- position der xml datei
- position der exe
- sonstiges in deinen Augen relevantes ;)

[edit] hat sich wohl erledigt
 

beere

Mitglied
@the_29: Du bist genial DANKE ...... es klappt.... *absolutmegafreu*

Jetzt kann ich auch endlich eine rauchen gehen ..... du hast mir echt den "popo" gerettet.

DANKE!!!!!!!!



oder doch nicht, also irgendwie läuft es schon aber nicht so wie sonst.....ich lass es erstmal in ruhe laufen...

@Hobbit

Aufruf:

Process p = Runtime.getRuntime().exec("cmd /c c: & cd C:\\xmlimport\\ & xmlbatch test.xml");

Ort von xmlbatch.exe: C:\xmlimport

Ort von test.xml: C:\xmlimport

Ausführen von xmlbatch.exe durch Eingabe von "xmlbatch test.xml" in die Konsole
 

beere

Mitglied
Ja das ist bei uns alles komplizierter, dacht eigentlich er würde dann den cmd
auf c starten, aber hat er wohl nicht getan......

Also Dankeschön an alle.....hab ja jetzt einiges gelernt :toll:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J .jar datei öffnen funktioniert nicht Java Basics - Anfänger-Themen 17
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
P Probleme mit NetBeans: Wie lässt sich jar. Datei an einem MacBook öffnen Java Basics - Anfänger-Themen 21
I JFrame / Screen auf zweitem (definiertem) Monitor öffnen Java Basics - Anfänger-Themen 3
Files öffnen Java Basics - Anfänger-Themen 17
G jar file lässt sich nicht öffnen Java Basics - Anfänger-Themen 1
J selbst erstellte Datei mit Programm öffnen Java Basics - Anfänger-Themen 10
I Probleme mit OutputStream - Datei lässt sich nicht öffnen Java Basics - Anfänger-Themen 4
J Klassen .class Datei öffnen Java Basics - Anfänger-Themen 31
C Projekt öffnen BlueJ Java Basics - Anfänger-Themen 1
B File öffnen in src/main/webapp Java Basics - Anfänger-Themen 4
A Methoden Array aus verschiedenen Methoden bearbeiten bzw. öffnen Java Basics - Anfänger-Themen 18
E Warum kann ich meine jar-Datei nicht öffnen Java Basics - Anfänger-Themen 20
L Mein Taschenrechner lässt sich plötzlich nicht mehr öffnen Java Basics - Anfänger-Themen 5
T Mehrere JFrames gleichzeitig öffnen Java Basics - Anfänger-Themen 6
MR._FIRE_Flower Ordner im Explorer öffnen lassen Java Basics - Anfänger-Themen 2
M aus Fenster anderes Fenster öffnen und wieder umgekehrt Java Basics - Anfänger-Themen 5
B Classpath Class lässt sich nicht öffnen Java Basics - Anfänger-Themen 3
E Pdf-Document lässt sich im Servlet nicht öffnen Java Basics - Anfänger-Themen 5
E Knopfdruck neues Fenster öffnen Java Basics - Anfänger-Themen 5
S Dialogfeld nach 5 Sek automatisch öffnen Java Basics - Anfänger-Themen 15
M Standardbrowser öffnen Java Basics - Anfänger-Themen 6
M Erste Schritte Links öffnen Java Basics - Anfänger-Themen 6
P Kann ich Java - Programme auch ohne Editor öffnen? Java Basics - Anfänger-Themen 70
J Seite öffnen und schließen Java Basics - Anfänger-Themen 2
S Erste Schritte Java Applet lässt sich im Browser nicht öffnen Java Basics - Anfänger-Themen 9
WetWer Custom Datei Endung öffnen Java Basics - Anfänger-Themen 1
N Datei mit Wildcard öffnen Java Basics - Anfänger-Themen 2
F Programm öffnen Java Basics - Anfänger-Themen 2
P JFrame nur einmal öffnen Java Basics - Anfänger-Themen 4
P Erste Schritte durch MenuBar verschiedene Fenster öffnen Java Basics - Anfänger-Themen 2
Tacofan JAR-Datei öffnen Java Basics - Anfänger-Themen 4
T eclipse runnablejar Datei fehler bei öffnen Java Basics - Anfänger-Themen 0
F Java Programm öffnen Java Basics - Anfänger-Themen 3
T Textdatei öffnen und ans Ende scrollen Java Basics - Anfänger-Themen 11
K Erste Schritte Neues Fenster mit Textinhalt öffnen Java Basics - Anfänger-Themen 6
M Erste Schritte Erstes Programm mit Compiler öffnen Java Basics - Anfänger-Themen 4
M Code um per jButton ein neues Fenster zu öffnen Java Basics - Anfänger-Themen 3
J Pdf-Dokument im Java-Programm öffnen Java Basics - Anfänger-Themen 3
P Barcodescannen und Datei im Programm öffnen Java Basics - Anfänger-Themen 6
L Konsole öffnen und Java Programm darin ausführen Java Basics - Anfänger-Themen 4
N Eclipse Projekt im Terminal (Mac) öffnen.... Java Basics - Anfänger-Themen 4
T CMD mit Java Programm öffnen? Java Basics - Anfänger-Themen 5
A altes JPanel entfernen und neues öffnen Java Basics - Anfänger-Themen 5
S Erste Schritte Sprachermittler - Datei öffnen, Text in TextArea, Bereinigen, Auswerten Java Basics - Anfänger-Themen 14
B Projekt öffnen (Eclipse) Java Basics - Anfänger-Themen 2
A Weitere Konsolenfenster öffnen Java Basics - Anfänger-Themen 3
P Datei extern öffnen Java Basics - Anfänger-Themen 0
T Java Program über CMD öffnen und steuern Java Basics - Anfänger-Themen 1
P Wiedereinstieg und kann keine Dateien mehr öffnen... Java Basics - Anfänger-Themen 13
S externes Programm öffnen Java Basics - Anfänger-Themen 3
OnDemand Applikation öffnen mit Konsole Java Basics - Anfänger-Themen 17
J Methode um eine HTML-Datei zu öffnen Java Basics - Anfänger-Themen 10
N Java Programm im CMD Fenster öffnen, wie? Java Basics - Anfänger-Themen 17
J BlueJ Tic Tac Toe öffnen? Java Basics - Anfänger-Themen 6
Kenan89 Bild mit jar öffnen Java Basics - Anfänger-Themen 4
S Input/Output Datei öffnen ? Java Basics - Anfänger-Themen 9
S URL in deutsch öffnen Java Basics - Anfänger-Themen 2
L Klassen Ich kann keine .jar Dateien mehr öffnen Java Basics - Anfänger-Themen 4
L Applet soll Html-File öffnen Java Basics - Anfänger-Themen 2
H Java Archiv lässt sich nur pfadgebunden öffnen? Java Basics - Anfänger-Themen 26
J File ohne CMD öffnen? Java Basics - Anfänger-Themen 11
K Aus JFrame-Fenster SuM-Fenster öffnen geht nicht! Java Basics - Anfänger-Themen 8
U Input/Output Dateien öffnen Java Basics - Anfänger-Themen 6
D Webseiten öffnen Java Basics - Anfänger-Themen 4
S Erste Schritte Java Konsole öffnen ohne Sysout. Java Basics - Anfänger-Themen 3
K Frame öffnen klappt nicht?! Java Basics - Anfänger-Themen 36
M Gespeicherte Datei öffnen Java Basics - Anfänger-Themen 8
G JFrame nur ein mal öffnen, auch beim mehrmaligem Betätigen Java Basics - Anfänger-Themen 11
H Text Datei öffnen Java Basics - Anfänger-Themen 7
K .jar Datei mit Doppelklick öffnen Java Basics - Anfänger-Themen 26
2 Input/Output In Java Dateien öffnen/bearbeiten? Java Basics - Anfänger-Themen 9
FetterOtter Weitere Anwendungen öffnen Java Basics - Anfänger-Themen 5
U neue Java-Datei öffnen Java Basics - Anfänger-Themen 10
F Input/Output Wie externe Datei NICHT mit dem Standardprogramm öffnen? Java Basics - Anfänger-Themen 3
H Anhand von Jar, andere Jar öffnen Java Basics - Anfänger-Themen 7
Z In JList per Doppelklick eine Datei öffnen (z.B. ein PDF) Java Basics - Anfänger-Themen 16
V Kann Java nicht im Dos öffnen Java Basics - Anfänger-Themen 3
P Dropdownbox nach hinzufügen wieder öffnen Java Basics - Anfänger-Themen 7
T Mac OSX - Programm aus Java öffnen Java Basics - Anfänger-Themen 3
K Fenster öffnen nicht nach Export in jar File Java Basics - Anfänger-Themen 10
A jpg mit Standardprogramm öffnen Java Basics - Anfänger-Themen 3
B Frame über Button öffnen Java Basics - Anfänger-Themen 8
J neuen jFrame öffnen per buttonklick Java Basics - Anfänger-Themen 3
R Button soll neuen Frame öffnen Java Basics - Anfänger-Themen 21
K neues Fenster mit Button öffnen Java Basics - Anfänger-Themen 17
E Word aus Java heraus öffnen und in den Vordergrund holen Java Basics - Anfänger-Themen 2
IngoF wie kann man die Console nachträglich öffnen? Java Basics - Anfänger-Themen 6
Y Compiler-Fehler PowerPoint mit Java öffnen Java Basics - Anfänger-Themen 6
D Neues Frame öffnen Java Basics - Anfänger-Themen 7
W Java-Programm als Icon mit Doppelklick einfach öffnen ? Java Basics - Anfänger-Themen 3
X Per Klick ein Dialogfenster öffnen Java Basics - Anfänger-Themen 18
U Java .txt datei öffnen Java Basics - Anfänger-Themen 3
E BlueJ Projekt öffnen Java Basics - Anfänger-Themen 15
H java programm per batch datei öffnen Java Basics - Anfänger-Themen 4
P URL im Standardbrowser öffnen und JS ausführen Java Basics - Anfänger-Themen 2
C *.java / *.jar als *.jnlp öffnen Java Basics - Anfänger-Themen 3
M Frage zu JFrames öffnen Java Basics - Anfänger-Themen 4
C Textdatei mit eigenem .jar Editor öffnen Java Basics - Anfänger-Themen 11
L Bei Click Neuen Tab Fenster öffnen Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben