Java ProcessBuilder-Prozess wartet auf Eingabe

Beim Ausführen eines Befehlszeilenbefehls über ProcessBuilder (insbesondere "GetMac / s") kann ich den Fehler oder die MAC-Adresse, die zurückgegeben wird, lesen, aber die Benutzereingabe abfragen (einige PCs auf dem Computer) Netzwerk erfordert ein Passwort, wenn getmac verwendet wird), der Prozess bleibt hängen und wartet auf das Passwort.

Hier ist, was der Befehl tut, wenn er über die Befehlszeile ausgeführt wird:

Hier ist der Code, den ich für den Prozess verwende:

package testing;
import java.io.IOException;

class test1 {
    public static void main(String[] args){
        String hostName = "testpc";
        ProcessBuilder builder = new ProcessBuilder("getmac", "/s", hostName, "/nh");
        builder.inheritIO();
        try {
            Process proc = builder.start();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Der Grund, warum ich den Mac brauche, ist, um ein Wake-on-LAN-Programm zu erstellen und automatisch die Mac-Adressen eines neuen PCs abzurufen, wenn sie erkannt werden, damit der Benutzer sie nicht manuell eingeben muss. Wenn Sie also auf jeden Fall einen besseren Weg kennen, um die MAC-Adresse eines Remote-PCs zu ermitteln, lassen Sie es mich wisse

Mir ist klar, dass Java wahrscheinlich nicht die beste Sprache dafür ist, aber es ist die einzige, die ich derzeit kenne, und dies ist nur ein lustiges kleines Projekt für meine Ausfallzeiten bei der Arbeit.

** Bearbeiten: Wenn ein Passwort erforderlich ist, möchte ich diesen PC einfach ignorieren und den Vorgang abbrechen und zum nächsten PC übergehen.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage