Hallo,
da ich mich dazu entschieden habe mit dem ProcessBuilder ein Problem zu umgehen, bekomme ich jetzt bei einigen Befehlen, wie z.B. unter Windows der Befhel net, Probleme:
hier der relevante Code:
hier die geworfene Exception:
Allerdings weiß ich nicht, woran das liegt? Nomalerweies hätte ich sowas wie das hier erwartet:
Wie kann ich nun dafür sorgen, das Java bzw. ProcessBuilder diese findet und anzeigt?
Ein weiteres Problem ist, das ich gerne
mkdir <verzeichnis>
sagen würde, allerdings müsste ich dann allerdings umständlich mit substring arbeiten und mirden relecaten Teil aussschneiden.
Meine Frage ist, ob es hier nicht auch eine einfachere Lösung dafür gibt.
mfg duddits
da ich mich dazu entschieden habe mit dem ProcessBuilder ein Problem zu umgehen, bekomme ich jetzt bei einigen Befehlen, wie z.B. unter Windows der Befhel net, Probleme:
hier der relevante Code:
Code:
public static void main(String[] args) {
try {
boolean exit = true;
String s, s1;
BufferedReader br = new BufferedReader(new InputStreamReader(
System.in));
String startort = "/";
while (exit) {
File f = new File(startort);
System.out.print(f.getAbsolutePath() + "> ");
s = br.readLine();
// Shell beendet sich, wenn exit eingegeben wird
if (s.equals("exit")) {
exit = false;
} else if (s.equals("mkdir")) {
System.out
.print("Geben Sie den Namen des Verzeichnisses an,\nwelches Sie Erstellen wollen: ");
s1 = br.readLine();
mkdir(s1, startort);
} else {
try {
String sa[] = { s };
ProcessBuilder builder = new ProcessBuilder(sa);
builder.directory(new File(startort));
Process p = builder.start();
Scanner se = new Scanner(p.getInputStream());
System.out.println(se.next());
} catch (Exception ik) {
/*System.out.println(f.getAbsolutePath() + "> Befehl "
+ s + " konnte nicht gefunden werden");*/
ik.printStackTrace();
}
}
}
} catch (Exception io) {
io.printStackTrace();
}
}
hier die geworfene Exception:
Code:
C:\> net
java.util.NoSuchElementException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at WinShell.main(WinShell.java:91)
C:\>
Allerdings weiß ich nicht, woran das liegt? Nomalerweies hätte ich sowas wie das hier erwartet:
Code:
Die Syntax dieses Befehls lautet:
NET [ ACCOUNTS | COMPUTER | CONFIG | CONTINUE | FILE | GROUP | HELP |
HELPMSG | LOCALGROUP | NAME | PAUSE | PRINT | SEND | SESSION |
SHARE | START | STATISTICS | STOP | TIME | USE | USER | VIEW ]
Wie kann ich nun dafür sorgen, das Java bzw. ProcessBuilder diese findet und anzeigt?
Ein weiteres Problem ist, das ich gerne
mkdir <verzeichnis>
sagen würde, allerdings müsste ich dann allerdings umständlich mit substring arbeiten und mirden relecaten Teil aussschneiden.
Meine Frage ist, ob es hier nicht auch eine einfachere Lösung dafür gibt.
mfg duddits