Externe befehle in java

Was kann daran falsch sein:

Runtime rt = Runtime.getRuntime();
try {
rt.exec(new String[] { „md“, „C:\glow“ }); // -> md C:\glow
}
catch (IOException ex1) {
System.err.println(ex1); // Verzeichnis gibt es schon :smile:
}

da prog soll, falls es keinen glow-ordner gibt einen erstellen
und ich find den fehler nicht :smile:

Moin

da prog soll, falls es keinen glow-ordner gibt einen erstellen
und ich find den fehler nicht :smile:

Gibts denn eine Fehlermeldung ?

Und wenn du einfach mit java.io.File arbeitest (was dann auch auf nicht-windows-Systemen funktioniert) ?

cu

^^gibt es:

java.io.IOException: CreateProcess: „md C:\glow“ error=2

Hi,

wieso machste das nicht mit den „bordmitteln“ von Java?

File myDir = new File("c:\\glow");
if (!myfile.exists)
{
 myDir.mkdir();
}

Voila

Gruß

Winni

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

^^gibt es:

java.io.IOException: CreateProcess: „md C:\glow“ error=2

… ? Der ist neu, den kannte ich noch nicht. Was gibt printStackTrace zurück ?

Exisitiert die Datei „md.exe“ (oder war’s „md.com“ ?) überhaupt auf deinem Rechner ? Und liegt sie im Pfad ? (mit Dos-Box testen gilt nicht, die Dos-Boy hat „eingebaute“ Befehle an die man nicht so rankommt)

cu

Servus.

Nach ein bisschen Ausprobieren bin ich auf diese Lösung gekommen:

Runtime rt = Runtime.getRuntime();
try {

rt.exec(new String[] { „cmd“, „/C“, „md“, „C:\glow“ });

}
catch (IOException ex1) {
System.err.println(ex1);
}

Allerdings wird keine Exception generiert, wenn das Verzeichnis bereits existiert.

CU Chris

Moin

rt.exec(new String[] { „cmd“, „/C“, „md“, „C:\glow“
});

„cmd“ durch „command“ ersetzen auf windows 9X-Systemen. (kennt command auch /C schon ?)

cu

Fehler erkannt es muss heissen
cmd.com -C md“, da md nicht wirklich ein befehl ist sondern von cmd so interpretiert wird :smile: