为什么我的游戏在Linux上运行良好,但在Windows上运行不好?(Java.jar)
在.jar中部署我的游戏时,它在Linux/Mac上运行良好,没有错误 然而,在Windows上(特别是到目前为止正在测试Windows 10),我在启动时遇到这些错误,然后在JFrame中出现一个空白屏幕:为什么我的游戏在Linux上运行良好,但在Windows上运行不好?(Java.jar),java,linux,windows,multithreading,jar,Java,Linux,Windows,Multithreading,Jar,在.jar中部署我的游戏时,它在Linux/Mac上运行良好,没有错误 然而,在Windows上(特别是到目前为止正在测试Windows 10),我在启动时遇到这些错误,然后在JFrame中出现一个空白屏幕: Exception in thread "PooledThread7" java.lang.IllegalStateException: Buffers have not been created at sun.awt.windows.WComponentPeer.getBackB
Exception in thread "PooledThread7" 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.flip(Unknown Source)
at java.awt.Component$FlipBufferStrategy.show(Unknown Source)
at engine.Game$Render.render(Game.java:250)
at engine.Game$Render.run(Game.java:167)
at engine.PooledThread.run(ThreadPool.java:89)
及
-Dsun.java2d.d3d=false添加到命令行可能会有所帮助(禁用Direct3D用于2D渲染)。例如:
java-Dsun.java2d.d3d=false-jarsome.jar
res\maps
目录我使用BufferedWriter编写文件,并使用InputStream和Scanner读取文件。使用哪个类并不重要,但如何使用它们,实际代码会很有帮助。@MitchWeaver命令行选项有助于解决第一个问题吗?有点,它会降低错误的发生率,但它也会大幅降低帧速率(200+降至~16 fps)。我认为这实际上对问题没有帮助。错误不在于阅读,而在于写入
res\maps\map.txt
这一部分已经修复,但这是一个小问题。第一个问题是主要问题。到目前为止,我刚刚将渲染方法放在一个try-catch中,捕获IllegalStateException,但是现在在控制台中垃圾发送错误时,帧会闪烁。似乎只有每隔几帧才能通过try-catch块。
java.io.FileNotFoundException: res\maps\map.txt (The system cannot find the path specified)
at java.io.FileOutputStream.open0(Native Method)
at java.io.FileOutputStream.open(Unknown Source)
at java.io.FileOutputStream.<init>(Unknown Source)
at java.io.FileOutputStream.<init>(Unknown Source)
at java.io.FileWriter.<init>(Unknown Source)
at engine.testMapCreator.init(testMapCreator.java:69)
at engine.Game.init(Game.java:126)
at engine.Game.main(Game.java:80)
InputStream is = Game.class.getResourceAsStream("/map.txt")
Scanner scanner = new Scanner(is);
(for loops to iterate over the data)