lookupDefaultPrintService() 没有 return 系统默认打印机
lookupDefaultPrintService() doesn't return system default printer
配置:
- OS: 美分OS 5.4 版
- Linux: 2.6.18-164.el5
- Java: 1.7.0_25
嗨,
我很难弄清楚为什么我的 Java 应用程序中的打印对话框默认使用了错误的打印机。
lpstat -d
returns 'printer_ip0',并且 printenv
命令不 return LPDEST 或 PRINTER 变量(据我了解,优先于系统默认设置)。
然而,每次我开始打印作业时,首先显示按字母顺序排列的第一台打印机 (printer1),并且 PrintServiceLookup.lookupDefaultPrintService().getName()
给出相同的结果。
编辑:
启用 IPP 调试 (System.setProperty("sun.print.ippdebug", "true")
) 时,我得到以下日志:
CUPSPrinter>> libfound false
UnixPrintServiceLookup>> total# of printers = 2
CUPSPrinter>> libfound false
CUPSPrinter>> libfound false
CUPSPrinter>> libfound false
isRunning ? false
CUPSPrinter>> libfound false
这让我找到 sun.print 包中的 class CUPSPrinter()
,特别是:
static {
// load awt library to access native code
java.security.AccessController.doPrivileged(
new sun.security.action.LoadLibraryAction("awt"));
libFound = initIDs();
if (libFound) {
cupsServer = getCupsServer();
cupsPort = getCupsPort();
}
}
不幸的是,它仍然没有告诉我为什么它不能访问本机代码。
如有任何帮助,我们将不胜感激。
我不知道究竟是什么解决了我的问题,但 yum update
之后它就消失了!
配置:
- OS: 美分OS 5.4 版
- Linux: 2.6.18-164.el5
- Java: 1.7.0_25
嗨,
我很难弄清楚为什么我的 Java 应用程序中的打印对话框默认使用了错误的打印机。
lpstat -d
returns 'printer_ip0',并且 printenv
命令不 return LPDEST 或 PRINTER 变量(据我了解,优先于系统默认设置)。
然而,每次我开始打印作业时,首先显示按字母顺序排列的第一台打印机 (printer1),并且 PrintServiceLookup.lookupDefaultPrintService().getName()
给出相同的结果。
编辑:
启用 IPP 调试 (System.setProperty("sun.print.ippdebug", "true")
) 时,我得到以下日志:
CUPSPrinter>> libfound false
UnixPrintServiceLookup>> total# of printers = 2
CUPSPrinter>> libfound false
CUPSPrinter>> libfound false
CUPSPrinter>> libfound false
isRunning ? false
CUPSPrinter>> libfound false
这让我找到 sun.print 包中的 class CUPSPrinter()
,特别是:
static {
// load awt library to access native code
java.security.AccessController.doPrivileged(
new sun.security.action.LoadLibraryAction("awt"));
libFound = initIDs();
if (libFound) {
cupsServer = getCupsServer();
cupsPort = getCupsPort();
}
}
不幸的是,它仍然没有告诉我为什么它不能访问本机代码。
如有任何帮助,我们将不胜感激。
我不知道究竟是什么解决了我的问题,但 yum update
之后它就消失了!