Около 11 лет назад я разработал систему Java POS, которая до сих пор работает на компьютерах с Windows XP и Vista. Я обновляю их до Windows 7, и теперь у меня проблемы с печатью на чековых термопринтерах Star Micronics.
Вот строка кода, которая отлично работает на компьютерах с Windows XP и Vista, когда они обращаются к общим принтерам на других машинах в сети, но я получаю java.io.FileNotFoundException (Access Denied)
, когда пытаюсь напечатать на принтере, подключенном к коробке Windows 7.
FileOutputStream fos = new FileOutputStream("\\\\machine1\\printer");
Теперь в этом сценарии machine2 (не имеет значения, Windows XP, Vista или 7) пытается распечатать на принтере чеков, подключенном к machine1 (Windows 7) через мою программу Java. Если я попытаюсь распечатать обычный текстовый файл из Блокнота с machine2 на machine1, он будет работать нормально. Только через мою Java в упомянутой выше строке это не удается. Еще раз, если machine1 и machine2 либо Windows XP, либо Vista, тогда нет никаких проблем, и это работало в течение 11 лет.
Я считаю, что это проблема с разрешениями в Windows 7, но я не уверен, что это такое. Помните, что вторая машина может видеть принтер на машине с Windows 7 и даже печатать на нем. Это терпит неудачу только через мою Java-программу. Я мог бы попробовать переписать свой старый код того, как я печатаю, но боюсь, что столкнусь с аналогичными проблемами.
Какие-либо предложения?