2

我的客户端在使用旧的 Brother 打印机从 JAVA 应用程序打印时遇到问题。他得到的例外是“打印机不接受作业”。

其他应用程序(不是 java 应用程序)设法使用这些打印机进行打印。他换了一台新打印机(也是兄弟),没有更改驱动程序,然后它就可以工作了。

这个想法是他不能改变所有的打印机,他也不想重新安装所有的打印机,因为他有一个由数百台计算机和打印机组成的网络。

我在不同的论坛上读到,java 1.5 和 1.6 版本有一个错误,但是这个应用程序只适用于 java 1.5 或更高版本......所以他不能切换到 java 1.4(使用 java 1.4,打印工作)。

您能以某种方式帮助我并给我一些可能的解决方案吗?

4

2 回答 2

2

在http://copy-con.blogspot.com/2009/12/printer-is-not-accepting-job.html找到了使用字节码操作的解决方法

于 2010-12-17T14:40:02.860 回答
1

看来这是这个bug。不幸的是,它被标记为低优先级,并且由于没有人愿意为它投票,它被推迟了。

该论坛主题提供了一些有用的背景(回复 #11)和解决方法(回复 #9),在尝试打印文件时忽略打印机状态。

如果你想在 Java 7 中修复这个错误,还有时间提交补丁

编辑

我知道有人对解决方法提出异议,但我没有解决这个问题。不管怎样,应该可以开发一个更好的版本,或者使用相同的方法,或者使用不同的方法。如果子类化和使用反射来调整私有状态不起作用,那么您可以下载 Java 6 源代码,修复错误并重建。

我敢肯定,如果有人为您提供解决方案会很好,但让我们现实一点。这看起来像是一个影响极少数人的问题。IMO,您成功的最佳机会是:

  • 自助,
  • 支付 Oracle 支持合同的费用,或
  • 聘请独立的技术专家。

其中,自助最有可能为您提供快速解决方案……假设您拥有具备在内部进行此类工作的技能的人员。

于 2010-08-27T13:31:40.137 回答