2017-06-06 59 views
1

我遇到了一些非常奇怪的事情,我不知道是什麼造成了它。這是有問題的代碼行:Java創建BufferedImage凍結實例

BufferedImage out = new BufferedImage(256, 256, BufferedImage.TYPE_INT_RGB); 

調用此函數後,所有線程都會凍結,並且所有內容都會停止。我試着把它放在它自己的線程和主線程中,發生同樣的事情。我正在使用LWJGL3,所以這可能是一個問題,但我不明白它可能是什麼。

編輯:不不LWJGL發生在一個空白的項目或退出的-XstartOnFirstThread

+1

你怎麼知道這是程序停止的地方?你用調試器檢查過每個線程的調用堆棧嗎? – Radiodef

+0

@Radiodef我沒有檢查任何調用堆棧,但我有這個代碼來調試:''System.out.println(「Before」);''BufferedImage out = new BufferedImage(256,256,BufferedImage.TYPE_INT_RGB);' 'System.out.println(「After」);'我只在控制檯中看到「之前」。 –

+1

那麼,我要做的下一件事就是用調試器檢查每個線程的調用堆棧,以驗證它們確實被凍結以及它們都在哪裏。 – Radiodef

回答

1

好!我找到了解決方案。事實證明,所需要的只是以下JVM參數:-Djava.awt.headless=true您還必須確保您沒有在主線程中運行它,您必須在GLFW初始化的線程之外執行此操作。

所有這些僅適用於在Mac,Linux和Windows上運行LWJGL時不存在此問題的情況。