代码之家  ›  专栏  ›  技术社区  ›  Dan Miller

Java 8网络程序间歇打印不工作

  •  0
  • Dan Miller  · 技术社区  · 7 年前

    我们有一个在Java6上运行多年的应用程序,没有任何问题。

    这是一个GUI,它与服务器通信并接收要自动打印的未经请求的消息,而且对使用Java 8有了新的要求。

    自从迁移到Java8之后 PrintSystem 类(一个单独的线程,应用程序中总共有30个线程)看起来是基于查看日志文件而挂起的。打印系统调用 win32com.dll (其运行的Java 8 32位)发送到 LPT 和 COM 港口。

    通常情况下,一切正常,但会出现间歇性故障,当我们尝试捕获日志时,应用程序似乎会停止日志记录( java.util.logging )在最关键的时候。

    我们在其中一个工作站上添加了调试信息,并且由于90%的时间内一切正常,因此无法隔离问题。

    我们在日志中唯一能看到的是 印刷系统 类线程,没有响应。以及自从日志停止记录关键信息以来发生的任何时间。

    更新:阅读之后:

    如果没有足够强的引用,GC可能会删除日志记录。Java 8是否有可能有一个更具攻击性的GC,并且正在删除记录器?另外,代码是为Java 8重新编译的,但是它的运行方式与为Java 6(和Java 8 JVM)编译的方式有什么不同吗?

    PrintSystem类不被任何其他类持有,它被引用的方式是PrintSystem.getInstance().printMessage(message),所以Java 8可能正在继承该类?

    任何建议,谢谢。

    0 回复  |  直到 7 年前