2016-04-08 10 views
0

ゲームを.jarにデプロイすると、Linux/Macでエラーなく正常に動作します。私のゲームはLinuxではうまく動くが、Windowsではうまくいかないのはなぜですか? (Java .jar)

しかしWindowsの、(特にまだのとしてWindows 10をテスト)で、私は起動時にこれらのエラーを取得し、私のJFrameの中に空白の画面:

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) 

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) 

だから、 Windowsは私のスレッドプールのレンダリングを好まず、Linux上の.jar内のマップファイルを見つけている間に何らかの理由でWindows上でそれらのファイルを見つけられません。

... "Write once、Run anywhere"のようにそうですね。何が問題なの?

編集:最初のエラーはおそらく役立つコマンドラインに-Dsun.java2d.d3d=falseを追加するための

InputStream is = Game.class.getResourceAsStream("/map.txt") 
Scanner scanner = new Scanner(is); 

(for loops to iterate over the data) 
+0

エラーは読み込み中ではなく、「res \ maps \ map.txt」に書き込まれます –

+0

その部分は修正されていますが、それは小さな問題です。最初の問題は主な問題です。今のところ私はレンダリングメソッドをIllegalStateExceptionをキャッチするtry catchに入れましたが、コンソールでエラーをスパムしながらフレームがちらつきます。あたかも数フレームごとにtry-catchブロックを通過するように見えます。 –

答えて

0
  1. (2DレンダリングのためのDirect3Dの使用を無効にする):私はmap.txtファイルを読んでいますどのようにこれがあります。例:1秒間として

    javaの-Dsun.java2d.d3d = falseを-jar some.jar

  2. 、我々はあなたが(てFileWriterが言及されている)ファイルを書き込む方法を確認する必要があるだろう、それはあるかもしれません例えばres\mapsディレクトリがありません。

+0

私はBufferedWriterを使ってファイルを書き、InputStreamとScannerを使ってファイルを読みます。 –

+0

どのクラスを使用するかは関係ありませんが、どのように使用すれば実際のコードが役立つでしょうか。 –

+0

@MitchWeaverコマンドラインオプションは、最初の問題に役立ちますか? –

関連する問題