我大约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");
现在在这个场景中,机器2(无论是Windows XP,Vista还是7)都试图通过我的Java程序在连接到machine1(Windows 7)的收据打印机上打印。如果我尝试从machine1上的machine2打印普通文本文件,它可以正常工作。只有通过我上面提到的Java上的Java才会失败。再次,如果machine1和machine2是Windows XP或Vista,那么没有问题,这已经工作了11年。
我认为它必须是Windows 7的权限问题,但我不确定它是什么。请记住,第二台机器可以在Windows 7机器上看到打印机,甚至可以在其上打印。只有通过我的java程序才会失败。我可以尝试重写我的旧代码,但我恐怕会遇到类似的问题。
有什么建议吗?
答案 0 :(得分:1)
今天,在向具有打印功能的Windows XP计算机的用户升级到Windows 7计算机后,我遇到了同样的问题。我甚至无法“回显测试> \ machine1 \ GenericT”,导致Access被拒绝。
我发现你需要提供对“C:\ Windows \ System32 \ spool \ PRINTERS”中打印机文件夹的安全访问权限,你应该添加“Everyone”并给它修改。这是你可以打印没问题。