Ich verwende derzeit ProcessBuilder, um eine Datei wie test.out auszuführen. Hier einige meiner CodeVerwendung von Java ProcessBuilder zum Ausführen von ./Dateiname in Linux
ArrayList cmd = new ArrayList();
cmd.add("sudo");
cmd.add("./test.out");
String s = "";
try{
ProcessBuilder pb = new ProcessBuilder(cmd);
pb.directory(new File("/myPath"));
pb.redircErrorStream(true);
Process p = pb.start();
InputStream is = p.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferReader br = new BufferReader(isr);
String line = "";
while((line = br.readLine()) !=null)
{
s+=line;
}
System.out.println(s);
}
I Ausgang der Weg, der richtig ist ("/ myPath"). wenn ich Zeile entfernen
`cmd.add("sudo")`
die Ausgabe geben Sie mir einen String:
oneoflib:must be root. Did you forgot sudo?
Aber sobald ich hinzufügen
cmd.add ("sudo");
gibt es nichts Ausgabe.
Ist irgendjemand falsch damit?
Ich kann sudo ./test.out vom Terminal laufen, die gut funktioniert. Ich benutze Eclipse BTW. Vielen Dank.
Warum haben Sie Variable s in Ihrem Code definiert? Wollten Sie das nicht vielleicht in Ihrer Abschlusserklärung drucken? Mit anderen Worten: System.out.println (s); – mdewit
@mdewit sry, du warst richtig, ich habe den Code geändert, danke. Ich möchte nur die Ausgabe des Terminals bekommen. – Kun