无法从Java连接到打印机

时间:2019-06-03 06:38:39

标签: java printing access

我试图在intellij中运行powershell命令(从打印机获取状态),但由于某些原因,它不能从Java运行。该程序没有给出错误,只是延迟。也许我没有访问权限,但是我不知道是哪个。

在CMD中,此命令正常工作。

public static void main(String[] args) {
        String printerName = "HP LaserJet 1022n";
        ProcessBuilder builder = new ProcessBuilder("powershell.exe", "get-wmiobject -class win32_printer | Select-Object Name,Status | where {$_.Name -eq '" + printerName + "'}");
        String fullStatus = null;
        Process reg;
        builder.redirectErrorStream(true);
        try {
            reg = builder.start();
            fullStatus = IOUtils.toString(reg.getInputStream(), "UTF-8"); //in this moment program is delaying
            reg.destroy();
        } catch (IOException e1) {
            e1.printStackTrace();
        }

        System.out.print(fullStatus);
    }

1 个答案:

答案 0 :(得分:0)

IOUtils.toString一直等到InputStream终止,但这不会发生,因为InputStream一直等到程序终止,并且在下一行发生。获得所需内容的最佳方法是逐行读取InputStream。 (也许使用BufferedReader see