Warum funktioniert meine Runnable Jar-Datei nicht?

Ich habe ungefähr 10 verschiedene Tutorials durchgearbeitet und keines davon schien den Trick zu machen, meine ausführbare JAR-Datei funktioniert einfach nicht.

MeineSpiel läuft gut wenn ich es in Eclipse laufen lasse, und ich warin der Lage, es in eine ausführbare JAR-Datei zu machen, die funktionierte erst vor ein oder zwei Tagen und haben nicht zu viel Code geändert. Wenn ich versuche, die .jar-Datei auszuführen, wird am unteren Bildschirmrand ein Java-Symbol angezeigt, aber dann passiert nichts.

Es ist, dass mein Launcher sich nicht öffnen lässt (wenn ich ohne Launcher laufe, funktioniert es einwandfrei), es gibt keine Fehler, ob ich mit Terminal oder Eclipse öffne.

package com.l3g3nds.threed;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.io.File;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;

public class Launcher extends JFrame implements MouseListener, MouseMotionListener {
    private static final long serialVersionUID = 1L;

    protected JPanel window = new JPanel();
    // private JButton play, options, help, quit, credits;
    // private Rectangle rplay, roptions, rhelp, rquit, rcredits;

    protected int buttonWidth = 120;
    protected int buttonHeight = 40;

    public Launcher(int id) {
        JPanel panel = (JPanel) getContentPane();

        JLabel label = new JLabel();
        label.setIcon(new ImageIcon("res/Launcher/schoolbackground.png"));
        System.out.println(Display.lScreen());
        if (Display.lScreen() == 5)
            label.setIcon(new ImageIcon("res/Launcher/quit1.png"));
        if (Display.lScreen() == 4)
            label.setIcon(new ImageIcon("res/Launcher/credits1.png"));
        if (Display.lScreen() == 3)
            label.setIcon(new ImageIcon("res/Launcher/options1.png"));
        if (Display.lScreen() == 2)
            label.setIcon(new ImageIcon("res/Launcher/help1.png"));
        if (Display.lScreen() == 1)
            label.setIcon(new ImageIcon("res/Launcher/beginrunning1.png"));
        panel.add(label);

        setUndecorated(true);

        System.out.println("launched");
        setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        setLocationRelativeTo(null);
        pack();
        setVisible(true);

        addMouseListener(this);
        addMouseMotionListener(this);

    }

    public void drawButtons() {
    }

    @Override
    public void mouseClicked(MouseEvent e) {
        int cx = e.getX();
        int cy = e.getY();
        if (cx >= 11 && cy >= 14 && cx <= 214 && cy <= 44) {
            dispose();
            new RunGame();
        } else if (cx >= 11 && cy >= 66 && cx <= 70 && cy <= 96) {
            //open help
        } else if (cx >= 11 && cy >= 119 && cx <= 119 && cy <= 144) {
            this.dispose();
            new Options();
        } else if (cx >= 11 && cy >= 170 && cx <= 114 && cy <= 200) {
            //open credits
        } else if (cx >= 11 && cy >= 222 && cx <= 74 && cy <= 254) {
            System.exit(0);
        }

    }

    @Override
    public void mouseEntered(MouseEvent e) {
        // TODO Auto-generated method stub

    }

    @Override
    public void mouseExited(MouseEvent e) {
        // TODO Auto-generated method stub

    }

    @Override
    public void mousePressed(MouseEvent e) {
        // TODO Auto-generated method stub

    }

    @Override
    public void mouseReleased(MouseEvent e) {
        // TODO Auto-generated method stub

    }

    @Override
    public void mouseDragged(MouseEvent arg0) {
        // TODO Auto-generated method stub

    }

    @Override
    public void mouseMoved(MouseEvent e) {
        // TODO Auto-generated method stub
        int mx = e.getX();
        int my = e.getY();
        if (mx >= 11 && my >= 14 && mx <= 214 && my <= 44) {
            if (Display.lScreen() != 1) {
                Display.setlScreen(1);
                new Launcher(1);
                System.out.println("1");
            }
        } else if (mx >= 11 && my >= 66 && mx <= 70 && my <= 96) {
            if (Display.lScreen() != 2) {
                Display.setlScreen(2);
                new Launcher(1);
                System.out.println("2");
            }
        } else if (mx >= 11 && my >= 119 && mx <= 119 && my <= 144) {
            if (Display.lScreen() != 3) {
                Display.setlScreen(3);
                new Launcher(1);
                System.out.println("3");
            }
        } else if (mx >= 11 && my >= 170 && mx <= 114 && my <= 200) {
            if (Display.lScreen() != 4) {
                Display.setlScreen(4);
                new Launcher(1);
                System.out.println("4");
            }
        } else if (mx >= 11 && my >= 222 && mx <= 74 && my <= 254) {
            if (Display.lScreen() != 5) {
                Display.setlScreen(5);
                new Launcher(1);
                System.out.println("5");
            }
        }
        else {
            if (Display.lScreen() != 0) {
                Display.setlScreen(0);
                new Launcher(1);
                System.out.println("0");
            }
        }
    }
}

Ich benutze einen Mac, wenn das hilft ...

Hier sind Screenshots, die ich von den genauen Schritten gemacht habe, die ich gemacht habe

Einige Warnungen, die ich erhalten habe (Ich denke, sie sind nur wegen nicht verwendeter Variablen. Ich habe diese Meldung früher erhalten, als ich meine .jar zum Laufen bringen konnte.)

Dies scheint, dass die Oberseite meines Bildschirms zusammen mit dem Java-Symbol unten, aber nichts anderes passiert.

-Vielen Dank

Antworten auf die Frage(3)

Ihre Antwort auf die Frage