簡體   English   中英

在Linux中使用ProcessBuilder執行Shell命令

[英]Executing shell commands using ProcessBuilder in linux

我有一個代碼,它接受一些adb命令並讀取輸入,以便稍后在JTextField中反映出來。 它在Windows中可以正常工作,但在Linux中,相同的代碼會產生許多錯誤,例如IOexception(無此類文件或目錄)。 在這種情況下,是否需要指定特定於操作系統的環境設置

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();

錯誤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

可以使用絕對路徑調用adb嗎? 您可以使用whereis adb找到絕對路徑。 您還可以檢查JAVA流程生成器返回的echo $PATH返回什么,以獲取與Java程序相同的路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM