Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.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 将命令确认发送到windows控制台_Java_Windows_Console_Zlib - Fatal编程技术网

Java 将命令确认发送到windows控制台

Java 将命令确认发送到windows控制台,java,windows,console,zlib,Java,Windows,Console,Zlib,我已成功地从java调用Windows控制台,使用zlib解压字符串,如下所示: Runtime rt = Runtime.getRuntime(); rt.exec("cmd.exe /c start z -d psw.txt", null, new File("C:\\users\\dlopez\\Encrypted\\ ")); Runtime rt = Runtime.getRuntime(); Process proc = rt.exec("c

我已成功地从java调用Windows控制台,使用zlib解压字符串,如下所示:

    Runtime rt = Runtime.getRuntime();
    rt.exec("cmd.exe /c start z -d psw.txt", null, new File("C:\\users\\dlopez\\Encrypted\\ "));
        Runtime rt = Runtime.getRuntime();
    Process proc = rt.exec("cmd.exe /c start z -d psw.txt", null, new File("C:\\users\\dlopez\\Encrypted\\ "));
    new PrintWriter(proc.getOutputStream()).println("y");
在这之后,我被问到是否要覆盖该文件,我必须指出是,但我不知道在执行命令后如何从java执行该操作

我怎么做


谢谢

您可以像这样响应控制台提示:

    Runtime rt = Runtime.getRuntime();
    rt.exec("cmd.exe /c start z -d psw.txt", null, new File("C:\\users\\dlopez\\Encrypted\\ "));
        Runtime rt = Runtime.getRuntime();
    Process proc = rt.exec("cmd.exe /c start z -d psw.txt", null, new File("C:\\users\\dlopez\\Encrypted\\ "));
    new PrintWriter(proc.getOutputStream()).println("y");

您可以像这样响应控制台提示:

    Runtime rt = Runtime.getRuntime();
    rt.exec("cmd.exe /c start z -d psw.txt", null, new File("C:\\users\\dlopez\\Encrypted\\ "));
        Runtime rt = Runtime.getRuntime();
    Process proc = rt.exec("cmd.exe /c start z -d psw.txt", null, new File("C:\\users\\dlopez\\Encrypted\\ "));
    new PrintWriter(proc.getOutputStream()).println("y");

我发现了如何使用-r命令解决它

rt.exec("cmd.exe /c start z -d -r psw.txt", null, new File("C:\\users\\dlopez\\Encrypted\\ "));

这样我就替换了文件,而不询问是否需要

我发现了如何使用-r命令解决它

rt.exec("cmd.exe /c start z -d -r psw.txt", null, new File("C:\\users\\dlopez\\Encrypted\\ "));

这样我就替换了文件,而不询问是否需要

您是否真的使用了相当旧的zlib二进制文件?我的建议是:要么获取当前的解压程序,要么使用Java库进行解压缩。您是否检查过是否有一个参数告诉zlib以静默方式覆盖?如果没有,您可以将“y”写入进程的输出流。您真的使用了相当旧的zlib二进制文件吗?我的建议是:要么获取当前的解压程序,要么使用Java库进行解压缩。您是否检查过是否有一个参数告诉zlib以静默方式覆盖?如果没有,您可以将“y”写入processThk的输出流以获得回复。我试过新的PrintWriter,但没用。这可能是因为控制台来自zLib本身吗?是的,这样您只能通过操作系统提供给每个进程的stdin和stdout进行通信,而不是通过应用程序的UI。在ZLIB的特定情况下,您可以直接从Java使用它,如这里所述:Thk用于回复。我试过新的PrintWriter,但没用。这可能是因为控制台来自zLib本身吗?是的,这样您只能通过操作系统提供给每个进程的stdin和stdout进行通信,而不是通过应用程序的UI。在ZLIB的特定情况下,您可以直接从Java使用它,如下所述: