Java 使用PrinterJob时获取NullPointerException
我试图通过JavaFX应用程序打印收据,但每当我尝试打印时,都会收到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(); }
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好啊我会检查它是否有效。