Ich habe einen Code, der einige Adb-Befehle und liest die Eingabe, um später in JTextField widergespiegelt werden. Es funktioniert gut in Windows, aber in Linux, gibt der gleiche Code eine Reihe von Fehlern wie IOexception (keine solche Datei oder Verzeichnis). Haben wir OS-spezifische Umgebungskonfiguration in diesem FallAusführen von Shell-Befehlen mit ProcessBuilder in Linux
ProcessBuilder process5 = new ProcessBuilder("adb", "shell","getprop","ro.product.model");
Process p1 = process5.start();
InputStream stdin1 = p1.getInputStream();
BufferedReader writer1 = new BufferedReader(new InputStreamReader(stdin1));
String model=writer1.readLine();
Fehler mgs-
Exception in thread "main" java.io.IOException: Cannot run program "adb": error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at pb.main(pb.java:24)
Caused by: java.io.IOException: error=2, No such file or directory
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.<init>(UNIXProcess.java:248)
at java.lang.ProcessImpl.start(ProcessImpl.java:134)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
... 1 more
Ist das Verzeichnis von 'adb' in Ihrer' PATH' Variable? z.B. 'export PATH = ...' – SubOptimal
Es würde vielleicht helfen, wenn Sie die genaue Fehlermeldung einfügen würden. Aber könnte es sein, dass auf Ihrem Linux-System die ausführbare Datei "adb" nicht in Ihrem 'PATH' enthalten ist? Wenn ja, sag es mir, dann mache ich das eine Antwort, um von dir akzeptiert zu werden. Um es zu versuchen, öffne einfach ein Terminal und versuche, 'adb' auszuführen. Wenn dies nicht der Fall ist, fügen Sie den Pfad zu "adb" zu Ihrem Pfad hinzu oder erstellen Sie einen Symlink zu "adb" irgendwo in Ihrem "PATH" wie mit "ln -s/pfad/zu/adb/usr/local/bin /". – Vampire
@ SubOptimal- Nein. Muss ich das manuell machen? – sam