我的代码:
String correr = "msg /SERVER:" + NomePC.replace(" ", "") + " * /TIME:300 \"" + Mensagem + "\"";
Process textoo = null;
try {
textoo = Runtime.getRuntime().exec(correr);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
BufferedReader innTexto = new BufferedReader(new InputStreamReader(textoo.getInputStream()));
String lineTexto=null;
try {
lineTexto = innTexto.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (lineTexto != null) {
System.out.println("Não passou");
}
else if (lineTexto == null) {
System.out.println("A sua mensagem foi enviada com sucesso para " + NomePC + " ás: " + dataFormatada);
}
所以我的 readLine 总是为空,我不知道为什么。我已经打印出来确认一下。当我直接在 cmd 中执行命令时,我得到了答案。那么为什么它不读取该行呢?
最佳答案
问题是这不是您应该指定命令的方式。您的命令由命令参数组成,您必须分隔每个命令参数!
因此构建一个 String
数组,其中包含:msg
,然后是 /SERVER:xxxx
等,并将其传递给 exec
。
----编辑
String []cmd = new String[THE_RIGHT_NUMBER_OF_ARGS_COMMAND_INCLUDED];
cmd[0] = "msg";
cmd[1] = "/SERVER:xxxx";
cmd[2] = "*";
cmd[3] = "/TIME:300";
...
textoo = Runtime.getRuntime().exec(cmd)
关于java - 为什么我的 readLine 返回 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35221308/