Java 使用PrinterJob时获取NullPointerException

Java 使用PrinterJob时获取NullPointerException,java,printing,javafx,nullpointerexception,Java,Printing,Javafx,Nullpointerexception,我试图通过JavaFX应用程序打印收据,但每当我尝试打印时,都会收到NullPointerException import javafx.print.PrinterJob; // More Imports public class PrintBasket { public PrintBasket() { VBox vboxPages = new VBox(); // Some Code printAction(); }

我试图通过JavaFX应用程序打印收据,但每当我尝试打印时,都会收到
NullPointerException

import javafx.print.PrinterJob;
// More Imports

public class PrintBasket 
{
    public PrintBasket()
    {
        VBox vboxPages = new VBox();
        // Some Code
        printAction();
    }

    public void printAction()
    { 
        PrinterJob printerJob = PrinterJob.createPrinterJob();

        // Some Code

        if(printerJob.printPage(vboxPages)) { // Getting exception at this line
              printerJob.endJob();
        }
    }
}
我得到的例外情况如下:

Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
    at Dialogs.PrintBasket.printAction(PrintBasket.java:638)
    at Dialogs.PrintBasket.<init>(PrintBasket.java:214)
    at Tabs.PrintUtil.<init>(PrintUtil.java:75)
线程“JavaFX应用程序线程”java.lang.NullPointerException中的异常 在Dialogs.printbark.printAction(printbark.java:638) 在Dialogs.printbarket.(printbarket.java:214) 在Tabs.PrintUtil.(PrintUtil.java:75) 我的Java是版本8,我的操作系统是Ubuntu 14.04.01

如果没有 打印机可用,这将返回null。某些平台可能提供 创建文档的伪打印机。这些将被枚举 在这里,只要平台也列举它们,就好像它们是 打印机“

如上面评论中的@MadProgrammer所示,我没有安装任何打印机,这就是为什么我得到了
NullPointerException
。因此,我继续安装了
cups-pdf

我安装了
cups pdf
,如下所示-

sudo apt-get install cups-pdf

然后创建了一台PDF打印机,我可以用它打印收据(来源:)。现在,我在打印时没有收到任何
NullPointerException

来自“如果没有可用的打印机,这将返回null。某些平台可能提供一个伪打印机,它创建文档。只要平台也像打印机一样枚举它们,这些将在这里枚举”@KevinEsche这是一个打字错误。修复了它。@因此,因为我没有连接任何打印机,所以它返回null。安装PDF转换器驱动程序会奏效吗?@bilesh.g我敢说,你肯定会从
PrinterJob.createPrinterJob
获得
null
,因为你没有安装打印机。安装PDF转换器“可能”可行,但正如文档所述,这将取决于平台如何处理it@MadProgrammer好啊我会检查它是否有效。