Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我的读线返回null?_Java_Null_Readline - Fatal编程技术网

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)