友達との最初のアルファ テストのために、ゲームを実行可能な .jar ファイルに抽出しようとしています。ただし、エクスポートすると、空白のフレームを開くだけのアプリケーションが表示されます。Run within Eclipse を使用すると正常に動作します。
これが私の静的メインです:
public static void main(String[] args){
regular=new DisplayMode(800,600);
mainframe=new JFrame();
mainframe.setSize(new Dimension (regular.getWidth(), regular.getHeight()));
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
mainframe.setLocation(dim.width/2-(regular.getWidth()/2), dim.height/2-(regular.getHeight()/2));
ExecutorService exmain = Executors.newFixedThreadPool(1);
displaycanvas=new Canvas();
displaycanvas.setSize(regular.getWidth(), regular.getHeight());
mainframe.add(displaycanvas);
displaycanvas.setFocusable(true);
displaycanvas.requestFocus();
displaycanvas.setIgnoreRepaint(true);
mainframe.setVisible(true);
mainframe.setResizable(true);
Main datmain=new Main(displaycanvas, mainframe);
mainframe.addWindowListener(datmain.new maincloser(datmain));
mainframe.addComponentListener(datmain.new mainresize(datmain));
Thread mainthread= new Thread(datmain);
mainthread.run();
}
そして、あなたが尋ねる前に、私は Main クラス (私のマニフェストで選択されています) を実行可能なスレッドではなくしようとしました。割り当てられたメモリのどこにも到達しないため、ゲーム機能自体が実行されていないことはわかっています。
私のopenglライブラリはjarに抽出されます。Main クラスはプロセス パッケージ内にあります (デフォルト パッケージでも機能しませんでした)。
そして、私が言ったように、Main をメイン クラス (静的メインが含まれる) として割り当てるマニフェストから実行されています。
私はそれをかなりいじり、 Display クラスへのすべての呼び出しに絞り込みましたが、それらは Run in Eclipse から正常に動作します。(使用 System.exit(0); 関数呼び出しの後、フリーズした場合はそれらを削除しました。)
追加: 抽出された jar 内の lwjgl パッケージ内で、Display クラスが 8 つの個別のファイルに分割されていることもわかりました。ただし、opengl.* をインポートしています。