Vielleicht gibt es erhebliche Unterschiede zwischen exec
auf Linux im Vergleich zu Windows laufen, jenseits der offensichtlichen, also habe ich eine Demo ergriffen, aber es stürzt auch ab, wenn eine cmdarray
von "Hallo Welt" gesendet.richtige Verwendung zu echo mehrere Befehle mit exec
Was ist die korrekte Verwendung für ein "Befehlsarray" von "Echo" -Befehlen?
Absturz:
run:
echo hello world...? cannot open notepad
java.io.IOException: Cannot run program "echo hello world 1": error=2, No such file or directory
BUILD SUCCESSFUL (total time: 0 seconds)
angepasst Code:
package com.tutorialspoint;
public class RuntimeDemo {
public static void main(String[] args) {
try {
// create a new array of 2 strings
String[] cmdArray = new String[2];
// first argument is the program we want to open
cmdArray[0] = "echo hello world 1";
// second argument is a txt file we want to open with notepad
cmdArray[1] = "echo hello world 2";
// print a message
System.out.println("echo hello world...? cannot open notepad");
// create a process and execute cmdArray
Process process = Runtime.getRuntime().exec(cmdArray);
// print another message
System.out.println("example.txt should now open.");
} catch (Exception ex) {
System.out.println(ex);
}
}
}
siehe auch: sending a cmdarray for exec to process -- hello world
Siehe auch [Wenn Runtime.exec() nicht] (http://www.javaworld.com/article/2071275/core-java/when-runtime- exec --- won-t.html) für viele gute Tipps zur korrekten Erstellung und Handhabung eines Prozesses. Dann ignoriere es auf 'exec' und verwende einen' ProcessBuilder' um den Prozess zu erstellen. –