2009-06-23 18 views
3

如果我從Windows命令提示符運行我的JBoss應用程序,我可以得到打印機列表(包括網絡打印機)。Java Print Service:PrintServiceLookup.lookupPrintServices不返回聯網打印機

如果我將JBoss應用程序作爲Windows服務運行,我只能獲取直接連接到本機的打印機列表。網絡打印機不顯示。

下面是我用得到打印機列表中的Java代碼:

PrintService[] printerServices = PrintServiceLookup.lookupPrintServices(null, null); 

這並不似乎是一個權限問題,根據我們的管理員以來,權限的設置就好了。

是否有一些更好的解釋,或者是否有一組權限可能需要讓網絡打印機顯示出來?

回答

5

您必須以具有適當權限的域用戶身份運行Windows服務,而不是以LocalUser身份運行。

您還可以使用tcp/ip連接添加聯網打印機,問題就會消失。

0

我的同事幾分鐘前就有這個問題,但在REDHAT LINUX系統上。他的服務器已重新啓動,打印機功能只能工作一半; LP工作,杯子工作,但沒有訪問Java的打印機。他發現localhost已經從hosts文件中消失了。

他的解決方法:添加本地主機的hosts文件(但因爲你是在Windows上,這可能不是你的解決方案)

0

它似乎是與網絡打印機的問題。任何由JRE看到的打印機必須處於「共享」狀態。不幸的是網絡打印機不是。

請參閱:系統設置 - >打印機 - > PDF - > - >共享(啓用複選框)