Dies ist mein Code:Prozess von Java-Code gestartet kehrt nicht
Process p1;
try {
p1 = Runtime.getRuntime().exec("utils/a.out <utils/test_c2.txt> utils/result.txt");
p1.waitFor();
} catch (Exception e) {
System.out.println("Something went bad!");
}
ich gelesen habe, dass es ein Problem mit dem Eingangspuffergröße sein sollte, aber in diesem Fall alle die Ausgabe von der Der gestartete Prozess wird auf "utils/result.txt" umgeleitet, sodass der gestartete Prozess nicht zum Deadlock führen sollte. Wenn ich denselben Befehl vom Terminal aus starte, funktioniert es. Vielleicht wäre es hilfreich zu beschreiben, was "a.out" ist. Ich erhielt es von einer Flex-Datei wie folgt:
$ flex rulex.lex
$ gcc lex.yy.c -lfl
Jede Hilfe wäre willkommen.
Sie sollten in der catch-Klausel 'e.printStackTrace();' hinzufügen, um zu sehen, was die Ausnahmeursache ist, anstatt nur zu sagen: 'Etwas ist schiefgegangen!'. – dan