0
配置:lookupDefaultPrintService()不返回系統默認的打印機
- OS: CentOS版本5.4
- 的Linux: 2.6.18-164.el5
- 的Java: 1.7.0_25
嗨,
我很難弄清楚爲什麼我的Java應用程序中的打印對話框使用錯誤的打印機作爲默認設置。
lpstat -d
返回'printer_ip0',並且printenv
命令不會返回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包類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();
}
}
不幸的是,它仍然沒有告訴我爲什麼它不能訪問本機代碼。
任何幫助將不勝感激。