Служба печати Java: PrintServiceLookup.lookupPrintServices не возвращает сетевые принтеры - PullRequest
3 голосов
/ 24 июня 2009

Если я запускаю свое приложение JBoss из командной строки Windows, я могу получить список принтеров (включая сетевые принтеры просто отлично).

Если я запускаю свое приложение JBoss в качестве службы Windows, я получаю только список принтеров, которые напрямую подключены к машине. Сетевые принтеры не отображаются.

Вот код Java, который я использую для получения списка принтеров:

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

Кажется, это не проблема с разрешениями, поскольку, по словам нашего администратора, права доступа настроены очень хорошо.

Есть ли у некоторых лучшее объяснение или есть набор разрешений, которые могут потребоваться для отображения сетевых принтеров?

Ответы [ 3 ]

5 голосов
/ 29 июня 2009

Службу windows необходимо запускать как пользователь в домене с соответствующими разрешениями, а не как LocalUser.

Вы также можете добавить сетевые принтеры, используя соединение TCP / IP, и проблема исчезнет.

0 голосов
/ 18 апреля 2017

это похоже на проблему с сетевыми принтерами. любой принтер, который должен видеть JRE, должен находиться в состоянии «общего доступа». к сожалению, нет сетевых принтеров.

см. Параметры системы-> Принтеры-> PDF -> -> Общий (флажок включения)

0 голосов
/ 10 марта 2010

У моего коллеги была та же самая проблема несколько минут назад, но в системе REDHAT LINUX. Его сервер был перезагружен, и функциональность принтера работала только наполовину; LP работал, чашки работали, но нет доступа к принтерам из Java. Он обнаружил, что localhost исчез из файла hosts.

Его решение: добавить localhost в файл hosts (но поскольку вы находитесь в Windows, это может быть не ваше решение)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...