【问题标题】:Java Print Service: PrintServiceLookup.lookupPrintServices does not return networked printersJava 打印服务:PrintServiceLookup.lookupPrintServices 不返回联网打印机
【发布时间】:2009-06-23 21:03:47
【问题描述】:

如果我从 Windows 命令提示符运行我的 JBoss 应用程序,我可以获得打印机列表(包括网络打印机就好了)。

如果我将 JBoss 应用程序作为 Windows 服务运行,我只会获得直接连接到机器的打印机列表。联网的打印机不显示。

这是我用来获取打印机列表的 Java 代码:

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

这似乎不是权限问题,因为根据我们的管理员的说法,权限设置得很好。

是否有更好的解释,或者是否需要一组权限才能显示联网打印机?

【问题讨论】:

    标签: java windows printing service


    【解决方案1】:

    您必须以具有适当权限的域上的用户身份运行 Windows 服务,而不是以 LocalUser 身份运行。

    您还可以使用 tcp/ip 连接添加联网打印机,问题就消失了。

    【讨论】:

      【解决方案2】:

      我的同事几分钟前也遇到了同样的问题,但是在一个 REDHAT LINUX 系统上。他的服务器已经重新启动,打印机功能只工作了一半; lp 工作,cups 工作,但无法从 Java 访问打印机。他发现 localhost 已经从 hosts 文件中消失了。

      他的解决方案:将 localhost 添加到主机文件(但由于您在 Windows 上,这可能不是您的解决方案)

      【讨论】:

        【解决方案3】:

        这似乎是网络打印机的问题。 JRE 可以看到的任何打印机都必须处于“共享”状态。不幸的是,网络打印机不是。

        请参阅:系统设置->打印机->PDF->->共享(启用复选框)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-01-22
          • 2011-11-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-11-15
          相关资源
          最近更新 更多