我有一个代码,它接受一些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();

错误管理系统-
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 process builder的echo $PATH返回的内容,以便获得与JAVA程序相同的路径。

07-24 14:41
查看更多