java:IllegalStateException - 尚未创建缓冲区

Bic*_*ick 13 java exception

我的服务器中有一个奇怪的例外.
相同的应用程序(java,swing)在几台服务器上运行.
每台服务器都运行双监视器.相同的jre版本(jre 6版本24)所有这些都在相当的CPU /内存消耗.

只有其中一个 - 当我将我的应用程序从一个监视器拖到另一个监视器时,它会抛出java.lang.IllegalStateException异常.我在下面附上了完整的例外情况.有谁有想法吗 ?

谢谢.

而现在,例外:

java.lang.IllegalStateException: Buffers have not been created
    at sun.awt.windows.WComponentPeer.getBackBuffer(Unknown Source)
    at java.awt.Component$FlipBufferStrategy.getBackBuffer(Unknown Source)
    at java.awt.Component$FlipBufferStrategy.updateInternalBuffers(Unknown Source)
    at java.awt.Component$FlipBufferStrategy.revalidate(Unknown Source)
    at java.awt.Component$FlipBufferStrategy.revalidate(Unknown Source)
    at java.awt.Component$FlipBufferStrategy.getDrawGraphics(Unknown Source)
    at javax.swing.BufferStrategyPaintManager.prepare(Unknown Source)
    at javax.swing.BufferStrategyPaintManager.paint(Unknown Source)
    at javax.swing.RepaintManager.paint(Unknown Source)
    at javax.swing.JComponent.paint(Unknown Source)
    at java.awt.GraphicsCallback$PaintCallback.run(Unknown Source)
    at sun.awt.SunGraphicsCallback.runOneComponent(Unknown Source)
    at sun.awt.SunGraphicsCallback.runComponents(Unknown Source)
    at java.awt.Container.paint(Unknown Source)
    at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    at javax.swing.RepaintManager.seqPaintDirtyRegions(Unknown Source)
    at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

pap*_*pap 15

尝试将以下参数添加到java命令行:

-Dsun.java2d.d3d=false

  • 我知道,java AWT默认在Windows上使用Direct3D(也用于2D渲染).将其关闭(使用参数)可能会导致性能下降,但Direct3D无法与辅助屏幕一起使用,尤其是当您的显卡具有Direct3D的硬件加速时(今天大多数情况下).与尝试在辅助屏幕上运行3D游戏相比(效果不佳).原因是显卡只为主显示器设置加速设备上下文,以节省一些计算能力. (7认同)