Java 为什么我的读线返回null?
我的代码:Java 为什么我的读线返回null?,java,null,readline,Java,Null,Readline,我的代码: String correr = "msg /SERVER:" + NomePC.replace(" ", "") + " * /TIME:300 \"" + Mensagem + "\""; Process textoo = null; try { textoo = Runtime.getRuntime().exec(correr); } catch (IOException e1) { // TODO Auto-generat
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);
}
所以我的读线总是空的,我不知道为什么。我已经打印出来确认了。当我直接在cmd中执行命令时,我得到了一个答案。那它为什么不读这句话呢
问题在于,这不是指定命令的方式。您的命令由命令参数组成,您必须将每个参数分开 因此,构建一个包含:
msg
的字符串数组,然后/SERVER:xxxx
等,并将其传递给exec
----编辑
问题在于,这不是指定命令的方式。您的命令由命令参数组成,您必须将每个参数分开
因此,构建一个包含:msg
的字符串数组,然后/SERVER:xxxx
等,并将其传递给exec
----编辑
您确定命令当前没有写入错误流吗?是的。我已经尽我所能尝试了..的可能重复您确定命令当前没有写入错误流吗?是的,我正在写入。我已经尽我所能尝试了..可能重复您正在谈论的操作:String mensage=textaremamsg.getText();字符串NomePC=TxtNomePc.getText()??如果您不知道,我不理解您的意思。请参阅我的编辑,您必须将命令行的每个参数分隔为String
s,并构建这些字符串的数组。如果没有将整个字符串视为命令,但没有名为msg/SERVER:xxx…
的命令,则有一个名为msg
的命令接受参数。我现在已经尝试过了。仍然不起作用。我要更新一个图像,检查它。你还有几个问题:“*”必须扩展到你想要的文件,你不应该使用“
在上一个参数中,您传递的每个参数都会被您的命令按原样接收。用一个更简单的命令进行测试,比如说dir
,我理解你说的话,但是我尝试使用的cmd命令需要“而且*所以我无能为力。我必须这样做……我对此非常着迷。你是说这样做吗:String Mensagem=textaremamsg.getText();字符串NomePC=TxtNomePc.getText()?如果您不知道,我不理解您的意思。请参阅我的编辑,您必须将命令行的每个参数分隔为字符串
s,并构建这些字符串的数组。如果不将整个字符串视为命令,但没有名为msg/SERVER:xxx…
的命令,则有一个名为msg
的命令将s参数。我现在已经尝试过了。仍然不起作用。我要更新一个图像,检查它。您还有几个其他问题:“*”必须扩展到所需的文件,并且您不应该在上一个参数中使用“”
,您传递的每个参数都会被您的命令按原样接收。使用一个更简单的命令进行测试,比如dir
,我理解你说的话,但是我尝试使用的cmd命令需要“和*,所以我无能为力。我必须这样做……我对此非常着迷。
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)