从linux Deepin 15中的Java应用程序打印jaspersoft Studio中做出的报告时出错

我仅在linux中收到此错误,在Windows中它可以正常运行

Linux目标:Ubuntu 18.04 / Deepin 15.11 Java版本:1.8.0_221

在以下打印对话框中下达打印命令时出现错误:

从linux Deepin 15中的Java应用程序打印jaspersoft Studio中做出的报告时出错

=========代码

private void testDialogPrint() {

    try {

        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

        Connection connection = DriverManager.getconnection("jdbc:sqlserver://x.x.x.x:1433;databaseName=abc","sa","****");

        HashMap<String,Object> params = new HashMap<String,Object>();;

        JasperPrint printedReport = JasperFillManager.fillReport("test.jasper",params,connection);

        String outputFilename = "Test.pdf";
        JasperExportManager.exportReportToPdfFile( printedReport,outputFilename );//file creation success

        JasperPrintManager.printReport(printedReport,true);


    } catch (ClassnotFoundException | SQLException | JRException e) {
        e.printStackTrace();
    }

}

==========消息错误

net.sf.jasperreports.engine.JRException: Error printing report.
    at net.sf.jasperreports.engine.print.JRPrinterAWT.printPages(JRPrinterAWT.java:215)
    at net.sf.jasperreports.engine.JasperPrintManager.print(JasperPrintManager.java:246)
    at net.sf.jasperreports.engine.JasperPrintManager.print(JasperPrintManager.java:133)
    at net.sf.jasperreports.engine.JasperPrintManager.printReport(JasperPrintManager.java:329)
    at com.Start.imprimir(Start.java:46)
    at com.Start.main(Start.java:27)
Caused by: java.awt.print.PrinterIOException
    at sun.print.PSPrinterJob$PrinterSpooler.run(PSPrinterJob.java:737)
    at java.security.accessController.doPrivileged(Native Method)
    at sun.print.PSPrinterJob.endDoc(PSPrinterJob.java:792)
    at sun.print.RasterPrinterJob.print(RasterPrinterJob.java:1562)
    at sun.print.RasterPrinterJob.print(RasterPrinterJob.java:1390)
    at net.sf.jasperreports.engine.print.JRPrinterAWT.printPages(JRPrinterAWT.java:201)
    ... 5 more
Caused by: java.io.IOException: Cannot run program "/usr/bin/lpr": error=2,No existe el fichero  o el directorio
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
    at java.lang.Runtime.exec(Runtime.java:620)
    at java.lang.Runtime.exec(Runtime.java:485)
    at sun.print.PSPrinterJob$PrinterSpooler.run(PSPrinterJob.java:730)
    ... 10 more
Caused by: java.io.IOException: error=2,No existe el fichero o el directorio
    at java.lang.UNIXProcess.forkAndExec(Native Method)
    at java.lang.UNIXProcess.<init>(UNIXProcess.java:247)
    at java.lang.ProcessImpl.start(ProcessImpl.java:134)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
    ... 13 more
fanqi789 回答:从linux Deepin 15中的Java应用程序打印jaspersoft Studio中做出的报告时出错

看起来像Sun JDK的/ usr / bin / lpr进行了硬编码。 -https://kbpdfstudio.qoppa.com/printing-to-pdf-error-message-on-debian-gnulinux-7/

本文链接:https://www.f2er.com/3155871.html

大家都在问