gpt4 book ai didi

java - 从 java 发出 android 系统命令无法正常工作

转载 作者:行者123 更新时间:2023-12-02 11:12:25 24 4
gpt4 key购买 nike

我目前需要从我的java代码发出系统命令,但我卡住了很长一段时间。我一直在尝试许多论坛和许多代码 fragment ,但所有这些要么使应用程序崩溃,要么似乎什么也不做我尝试的最后一个代码适用于“echo”但是当我制作“echo anystuff > y.txt”时,它不是创建一个名为 y.txt 的文件并在该文件中写入“anystuff”,而是在我创建的文本框中显示“anystuff > y.txt”以查看输出这是我的方法

public void ShellTest() throws IOException {
// test 10
String cmd="echo anystuff > y.txt";
StringBuffer cmdOut = new StringBuffer();
Process process;
try{
// issue the command here
process = Runtime.getRuntime().exec(cmd);

// prepare to get back the result and put it in the textbox "resText"
DataOutputStream stdin = new DataOutputStream(process.getOutputStream());
stdin.writeBytes(cmd);

InputStreamReader r = new InputStreamReader(process.getInputStream());
BufferedReader bufReader = new BufferedReader(r);
char[] buf = new char[4096];
int nRead = 0;
while ((nRead = bufReader.read(buf)) > 0){
cmdOut.append(buf,0,nRead);
}
bufReader.close();
try {
process.waitFor();
} catch (InterruptedException e){
e.printStackTrace();
}
} catch (IOException e){
e.printStackTrace();
}
// check by the showing the output of the command in the textbox
resText.setText(cmdOut);
}

顺便说一句,我的手机是 Google Pixel 2 XL
任何帮助将不胜感激!

最佳答案

因为重定向不是系统命令的一部分。它是 shell(通常是 bash)的一个功能。为了让它工作,您需要运行一个 shell,然后将命令作为输入提供给 shell。单独将其作为命令运行会将其全部解释为命令 echo 的参数。

关于java - 从 java 发出 android 系统命令无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50532893/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com