I’m trying to extract my game into a runnable .jar file for my first alpha test among friends. However, when I export, I get an application which just opens a blank frame. It works fine using the Run within Eclipse.
Here is my static main:
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();
}
And before you ask, I did try making the Main class (which is selected in my manifest) not a runnable thread, and I did try reducing everything down a simple Display. I know that the game functions themselves are not running because it never reaches anywhere near my assigned memory.
My opengl libs are extracted into the jar. The Main class is within the processes package (it didn’t work with the default package either).
And, like I said, it’s running from a manifest which assigns Main as the main class (which the static main is in).
I’ve tinkered with it quite a bit and I have narrowed it down to all calls to the Display class, even though they work fine from Run in Eclipse. (used System.exit(0); after function calls, removed them if it froze.)
Add: I also found that within the lwjgl package inside the extracted jar, the Display class is split into 8 separate files. However, I am importing opengl.*.
I wasn’t packaging the natives within the jar.