简体   繁体   中英

Why does the sound of my program work in eclipse but not when generated in a jar

So after a long while of coding i was ready to export my program! but then i got this weird thing that the sound didnt work.. but it did in Eclipse! could you help me with this? it is greatly appriciated!

package me.NL.framed;


       import java.awt.Color;
       import java.awt.Toolkit;
       import java.awt.event.ActionEvent;
       import java.awt.event.ActionListener;


       import javax.swing.ImageIcon;
       import javax.swing.JButton;
       import javax.swing.JFrame;
       import javax.swing.JLabel;
       import javax.swing.JPasswordField;
       import javax.swing.JTextArea;
       import javax.swing.JTextField;

   public class JpanelFrame {





    public JpanelFrame() {





    ImageIcon image = new ImageIcon(getClass().getResource("/Rescources/img/SpashImg.png"));
    ImageIcon image2 = new ImageIcon(getClass().getResource("/Rescources/img/Backgroundgame.png"));
    JLabel imglabel = new JLabel(image);
    JLabel imglabel2 = new JLabel(image2);





    // splash screen
    JFrame splash = new JFrame("Loading..");
    splash.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/Rescources/img/Icon.png")));
    splash.setSize(480, 240);
    splash.add(imglabel);
    splash.setLocationRelativeTo(null);
    splash.setResizable(false);
    splash.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
    splash.setUndecorated(true);

    // login stuff

    final JButton lb3 = new JButton("Log in");
    lb3.setBounds(335,47,90,60);

    final JTextField Txp1 = new JTextField();
    Txp1.setVisible(false);
    Txp1.setBounds(70,50,250,20);

    final JTextField Txp3 = new JTextField();
    Txp3.setEditable(false);
    Txp3.setText("Username:");
    Txp3.setBounds(3,48,250,20);
    Txp3.setBorder(null);


    final JTextField Txp4 = new JTextField();
    Txp4.setEditable(false);
    Txp4.setText("Password:");
    Txp4.setBounds(3,84,250,20);
    Txp4.setBorder(null);

    final JPasswordField Txp2 = new JPasswordField();
    Txp2.setVisible(false);
    Txp2.setBounds(70,85,250,20);

    // Log in
    final JFrame login = new JFrame("Login om te starten");
    login.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/Rescources/img/Icon.png")));
    login.setSize(480, 240);
    login.setLayout(null);
    login.add(Txp1);
    Txp1.setVisible(true);
    login.add(Txp2);
    Txp2.setVisible(true);
    login.add(lb3);
    lb3.setVisible(true);
    login.add(Txp3);
    Txp3.setVisible(true);
    login.add(Txp4);
    Txp4.setVisible(true);
    login.setLocationRelativeTo(null);
    login.setResizable(false);
    login.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


    try {
        splash.setVisible(true);
        Sound.playSound("start.wav");
        Thread.sleep(5000);
        splash.setVisible(false);
        login.setVisible(true);
        Thread.sleep(600);

    } catch (InterruptedException e1) {

        e1.printStackTrace();
    }



    final JButton b1 = new JButton("Nederlands Zinsdeel hulp");
    b1.setBounds(300, 200, 370, 40);

    final JButton b2 = new JButton("Uitloggen");
    b2.setBounds(300, 259, 370, 40);


    // Tweede gedeelte

    final JLabel Tex1 = new JLabel("Hoe vind je de persoonsvorm?");
    Tex1.setForeground(Color.BLACK);



    Tex1.setVisible(false);
    Tex1.setBounds(250, 350, 500, 20);


    final JTextField Tx1 = new JTextField();
    Tx1.setVisible(false);
    Tx1.setBounds(250,370,500,20);

    final JButton b3 = new JButton("Volgende");
    b3.setVisible(false);
    b3.setBounds(300,400,100,30);

    // Derde Gedeelte

    final JLabel Tex2 = new JLabel("Hoe krijg je het onderwerp van een zin?");
    Tex2.setForeground(Color.BLACK);


    Tex2.setVisible(false);
    Tex2.setBounds(250, 350, 500, 20);


    final JTextField Tx2 = new JTextField();
    Tx2.setVisible(false);
    Tx2.setBounds(250,370,500,20);

    final JButton b4 = new JButton("Volgende");
    b4.setVisible(false);
    b4.setBounds(300,400,100,30);

    // Vierde gedeelte
    final JLabel Tex3 = new JLabel("Wat is een werkwoordelijk gezegde (WG)?");
    Tex3.setForeground(Color.BLACK);


    Tex3.setVisible(false);
    Tex3.setBounds(250, 350, 500, 20);


    final JTextField Tx3 = new JTextField();
    Tx3.setVisible(false);
    Tx3.setBounds(250,370,500,20);

    final JButton b5 = new JButton("Volgende");
    b5.setVisible(false);
    b5.setBounds(300,400,100,30);



    // Vijfde gedeelte
    final JLabel Tex4 = new JLabel("Wat is een lijdend voorwerp?");
    Tex4.setForeground(Color.BLACK);


    Tex4.setVisible(false);
    Tex4.setBounds(250, 350, 500, 20);


    final JTextField Tx4 = new JTextField();
    Tx4.setVisible(false);
    Tx4.setBounds(250,370,500,20);

    final JButton b6 = new JButton("Volgende");
    b6.setVisible(false);
    b6.setBounds(300,400,100,30);

    // Zesde gedeelte

    final JLabel Tex5 = new JLabel("Wat is een meewerkend voorwerp?");
    Tex5.setForeground(Color.BLACK);


    Tex5.setVisible(false);
    Tex5.setBounds(250, 350, 500, 20);


    final JTextField Tx5 = new JTextField();
    Tx5.setVisible(false);
    Tx5.setBounds(250,370,500,20);

    final JButton b7 = new JButton("Volgende");
    b7.setVisible(false);
    b7.setBounds(300,400,100,30);


    // zevende gedeelte
    final JLabel Tex6 = new JLabel("Wat is een bijwoordelijke bepaling?");
    Tex6.setForeground(Color.BLACK);


    Tex6.setVisible(false);
    Tex6.setBounds(250, 350, 500, 20);


    final JTextField Tx6 = new JTextField();
    Tx6.setVisible(false);
    Tx6.setBounds(250,370,500,20);

    final JButton b8 = new JButton("Volgende");
    b8.setVisible(false);
    b8.setBounds(300,400,100,30);

    // achtste gedeelte


    final JLabel Tex7 = new JLabel("Wat is een bijwoordelijke bepaling?");
    Tex7.setForeground(Color.BLACK);


    Tex7.setVisible(false);
    Tex7.setBounds(250, 350, 500, 20);


    final JTextField Tx7 = new JTextField();
    Tx7.setVisible(false);
    Tx7.setBounds(250,370,500,20);

    final JButton b9 = new JButton("Volgende");
    b9.setVisible(false);
    b9.setBounds(300,400,100,30);
    // negende gedeelte

    // tiende gedeelte

    final JLabel Tex8 = new JLabel("Wat is het onderwerp in deze zin?");
    Tex8.setForeground(Color.BLACK);


    Tex8.setVisible(false);
    Tex8.setBounds(250, 350, 500, 20);

    final JTextArea ow1 = new JTextArea("De kat rent weg van de man.");
    ow1.setEditable(false);


    ow1.setVisible(false);
    ow1.setBounds(250, 350, 500, 20);



    final JTextField Tx8 = new JTextField();
    Tx8.setVisible(false);
    Tx8.setBounds(250,370,500,20);

    final JButton b10 = new JButton("Volgende");
    b10.setVisible(false);
    b10.setBounds(300,400,100,30);
    // negende gedeelte

    // elfde gedeelte


    b1.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            b1.setVisible(false);   
            b2.setBounds(300, 725, 370, 40);
            b3.setVisible(true);
            Tx1.setVisible(true);
            Tex1.setVisible(true);

        }

        });





        b3.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {




                if(Tx1.getText().contains("andere tijd") || Tx1.getText().contains("verleden tijd") || Tx1.getText().contains("vraagzin")) {
                    Tex1.setVisible(false);
                    Tx1.setVisible(false);
                    b3.setVisible(false);
                    Score.goed++;
                    Score.Streak++;
                    if(Score.Streak == 1) {
                        Sound.playSound("Wow.wav");
                    } else if(Score.Streak == 2) {
                        Sound.playSound("damnson.wav");
                    } else if(Score.Streak == 3) {
                        Sound.playSound("Triple.wav");
                    } else if(Score.Streak == 4) {
                        Sound.playSound("neverdone.wav");
                    } else if(Score.Streak == 5) {
                        Sound.playSound("airhorn.wav");
                    } else if(Score.Streak == 6) {
                        Sound.playSound("omgtrick.wav");
                    } else if(Score.Streak == 7) {
                        Sound.playSound("camera.wav");
                    } else if(Score.Streak == 8) {
                        Sound.playSound("omygod.wav");
                    } else if(Score.Streak == 9) {
                        Sound.playSound("scaryskrill.wav");
                    } else if(Score.Streak == 10) {
                        Sound.playSound("SANIC.wav");
                    } else if(Score.Streak == 11) {
                        Sound.playSound("illuminati.wav");
                    } else if(Score.Streak == 12) {
                        Sound.playSound("Tactical.wav");    
                    }
                //  Sound.listSounds();

                    Tex2.setVisible(true);
                    Tx2.setVisible(true);
                    b4.setVisible(true);
                } else {
                    Score.fout++;
                    Score.Streak = 0;
                }
            }
                });


                    b4.addActionListener(new ActionListener() {

                        @Override
                        public void actionPerformed(ActionEvent e) {
                            if(Tx2.getText().contains("wie/wat + persoonsvorm") || Tx2.getText().contains("wie of wat en persoonsvorm")
                                    || Tx2.getText().contains("wie of wat + persoonsvorm") || Tx2.getText().contains("wie/wat en persoonsvorm")) {
                            Tex2.setVisible(false);
                            Tx2.setVisible(false);
                            b4.setVisible(false);
                            Score.goed++;
                            Score.Streak++;
                            if(Score.Streak == 1) {
                                Sound.playSound("Wow.wav");
                            } else if(Score.Streak == 2) {
                                Sound.playSound("damnson.wav");
                            } else if(Score.Streak == 3) {
                                Sound.playSound("Triple.wav");
                            } else if(Score.Streak == 4) {
                                Sound.playSound("neverdone.wav");
                            } else if(Score.Streak == 5) {
                                Sound.playSound("airhorn.wav");
                            } else if(Score.Streak == 6) {
                                Sound.playSound("omgtrick.wav");
                            } else if(Score.Streak == 7) {
                                Sound.playSound("camera.wav");
                            } else if(Score.Streak == 8) {
                                Sound.playSound("omygod.wav");
                            } else if(Score.Streak == 9) {
                                Sound.playSound("scaryskrill.wav");
                            } else if(Score.Streak == 10) {
                                Sound.playSound("SANIC.wav");
                            } else if(Score.Streak == 11) {
                                Sound.playSound("illuminati.wav");
                            } else if(Score.Streak == 12) {
                                Sound.playSound("Tactical.wav");    
                            }

                            Tex3.setVisible(true);
                            Tx3.setVisible(true);
                            b5.setVisible(true);



                            } else {
                                Score.fout++;
                                Score.Streak = 0;
                            }
                        }

                    });

                    b5.addActionListener(new ActionListener() {

                        @Override
                        public void actionPerformed(ActionEvent e) {
                            if(Tx3.getText().contains("werkwoorden")) {
                                Tex3.setVisible(false);
                                Tx3.setVisible(false);
                                b5.setVisible(false);
                                Score.goed++;
                                Score.Streak++;
                                if(Score.Streak == 1) {
                                    Sound.playSound("Wow.wav");
                                } else if(Score.Streak == 2) {
                                    Sound.playSound("damnson.wav");
                                } else if(Score.Streak == 3) {
                                    Sound.playSound("Triple.wav");
                                } else if(Score.Streak == 4) {
                                    Sound.playSound("neverdone.wav");
                                } else if(Score.Streak == 5) {
                                    Sound.playSound("airhorn.wav");
                                } else if(Score.Streak == 6) {
                                    Sound.playSound("omgtrick.wav");
                                } else if(Score.Streak == 7) {
                                    Sound.playSound("camera.wav");
                                } else if(Score.Streak == 8) {
                                    Sound.playSound("omygod.wav");
                                } else if(Score.Streak == 9) {
                                    Sound.playSound("scaryskrill.wav");
                                } else if(Score.Streak == 10) {
                                    Sound.playSound("SANIC.wav");
                                } else if(Score.Streak == 11) {
                                    Sound.playSound("illuminati.wav");
                                } else if(Score.Streak == 12) {
                                    Sound.playSound("Tactical.wav");    
                                }

                                Tex4.setVisible(true);
                                Tx4.setVisible(true);
                                b6.setVisible(true);

                            } else {
                                Score.fout++;
                                Score.Streak = 0;
                            }


                        }

                    });

                    b6.addActionListener(new ActionListener() {

                        @Override
                        public void actionPerformed(ActionEvent e) {
                            if(Tx4.getText().contains("zinsdelen") || Tx4.getText().contains("Wie of wat + alle eerder gevonden zinsdelen")
                                    || Tx4.getText().contains("Wie/wat en alle eerder gevonden zinsdelen") || Tx4.getText().contains("Wie of wat en alle eerder gevonden zinsdelen")) {

                                Tex4.setVisible(false);
                                Tx4.setVisible(false);
                                b6.setVisible(false);
                                Score.goed++;
                                Score.Streak++;
                                if(Score.Streak == 1) {
                                    Sound.playSound("Wow.wav");
                                } else if(Score.Streak == 2) {
                                    Sound.playSound("damnson.wav");
                                } else if(Score.Streak == 3) {
                                    Sound.playSound("Triple.wav");
                                } else if(Score.Streak == 4) {
                                    Sound.playSound("neverdone.wav");
                                } else if(Score.Streak == 5) {
                                    Sound.playSound("airhorn.wav");
                                } else if(Score.Streak == 6) {
                                    Sound.playSound("omgtrick.wav");
                                } else if(Score.Streak == 7) {
                                    Sound.playSound("camera.wav");
                                } else if(Score.Streak == 8) {
                                    Sound.playSound("omygod.wav");
                                } else if(Score.Streak == 9) {
                                    Sound.playSound("scaryskrill.wav");
                                } else if(Score.Streak == 10) {
                                    Sound.playSound("SANIC.wav");
                                } else if(Score.Streak == 11) {
                                    Sound.playSound("illuminati.wav");
                                } else if(Score.Streak == 12) {
                                    Sound.playSound("Tactical.wav");    
                                }

                                Tex5.setVisible(true);
                                Tx5.setVisible(true);
                                b7.setVisible(true);

                            } else {
                                Score.fout++;
                                Score.Streak = 0;
                            }
                        }

                    });

                    b7.addActionListener(new ActionListener() {

                        @Override
                        public void actionPerformed(ActionEvent e) {
                            if(Tx5.getText().contains("plaats of     ...     ...tijd       tijd")           || Tx5.getText().contains("plaats of tijd")) {
                            Tex5.setVisible(false);
                            Tx5.setVisible(false);
                            b7.setVisible(false);
                            Score.goed++;
                            Score.Streak++;
                            if(Score.Streak == 1) {
                                Sound.playSound("Wow.wav");
                            } else if(Score.Streak == 2) {
                                Sound.playSound("damnson.wav");
                            } else if(Score.Streak == 3) {
                                Sound.playSound("Triple.wav");
                            } else if(Score.Streak == 4) {
                                Sound.playSound("neverdone.wav");
                            } else if(Score.Streak == 5) {
                                Sound.playSound("airhorn.wav");
                            } else if(Score.Streak == 6) {
                                Sound.playSound("omgtrick.wav");
                            } else if(Score.Streak == 7) {
                                Sound.playSound("camera.wav");
                            } else if(Score.Streak == 8) {
                                Sound.playSound("omygod.wav");
                            } else if(Score.Streak == 9) {
                                Sound.playSound("scaryskrill.wav");
                            } else if(Score.Streak == 10) {
                                Sound.playSound("SANIC.wav");
                            } else if(Score.Streak == 11) {
                                Sound.playSound("illuminati.wav");
                            } else if(Score.Streak == 12) {
                                Sound.playSound("Tactical.wav");    
                            }

                            Tex6.setVisible(true);
                            Tx6.setVisible(true);
                            b8.setVisible(true);


                            } else {
                                Score.fout++;
                                Score.Streak = 0;
                            }
                        }
                    });


                    b8.addActionListener(new ActionListener() {

                        @Override
                        public void actionPerformed(ActionEvent e) {
                            if(Tx6.getText().contains("zelfstandig naamwoord")) {
                                Tex6.setVisible(false);
                                Tx6.setVisible(false);
                                b8.setVisible(false);
                                Score.goed++;
                                Score.Streak++;
                                if(Score.Streak == 1) {
                                    Sound.playSound("Wow.wav");
                                } else if(Score.Streak == 2) {
                                    Sound.playSound("damnson.wav");
                                } else if(Score.Streak == 3) {
                                    Sound.playSound("Triple.wav");
                                } else if(Score.Streak == 4) {
                                    Sound.playSound("neverdone.wav");
                                } else if(Score.Streak == 5) {
                                    Sound.playSound("airhorn.wav");
                                } else if(Score.Streak == 6) {
                                    Sound.playSound("omgtrick.wav");
                                } else if(Score.Streak == 7) {
                                    Sound.playSound("camera.wav");
                                } else if(Score.Streak == 8) {
                                    Sound.playSound("omygod.wav");
                                } else if(Score.Streak == 9) {
                                    Sound.playSound("scaryskrill.wav");
                                } else if(Score.Streak == 10) {
                                    Sound.playSound("SANIC.wav");
                                } else if(Score.Streak == 11) {
                                    Sound.playSound("illuminati.wav");
                                } else if(Score.Streak == 12) {
                                    Sound.playSound("Tactical.wav");    
                                }

                                Tex7.setVisible(true);
                                Tx7.setVisible(true);
                                b9.setVisible(true);


                                } else {
                                    Score.fout++;
                                    Score.Streak = 0;
                                }   


                        }

                    });

                    b9.addActionListener(new ActionListener() {

                        @Override
                        public void actionPerformed(ActionEvent e) {
                            if(Tx7.getText().contains("zelfstandig naamwoord")) {
                                Tex7.setVisible(false);
                                Tx7.setVisible(false);
                                b9.setVisible(false);
                                Score.goed++;
                                Score.Streak++;
                                if(Score.Streak == 1) {
                                    Sound.playSound("Wow.wav");
                                } else if(Score.Streak == 2) {
                                    Sound.playSound("damnson.wav");
                                } else if(Score.Streak == 3) {
                                    Sound.playSound("Triple.wav");
                                } else if(Score.Streak == 4) {
                                    Sound.playSound("neverdone.wav");
                                } else if(Score.Streak == 5) {
                                    Sound.playSound("airhorn.wav");
                                } else if(Score.Streak == 6) {
                                    Sound.playSound("omgtrick.wav");
                                } else if(Score.Streak == 7) {
                                    Sound.playSound("camera.wav");
                                } else if(Score.Streak == 8) {
                                    Sound.playSound("omygod.wav");
                                } else if(Score.Streak == 9) {
                                    Sound.playSound("scaryskrill.wav");
                                } else if(Score.Streak == 10) {
                                    Sound.playSound("SANIC.wav");
                                } else if(Score.Streak == 11) {
                                    Sound.playSound("illuminati.wav");
                                } else if(Score.Streak == 12) {
                                    Sound.playSound("Tactical.wav");    
                                }

                                Tex8.setVisible(true);
                                Tx8.setVisible(true);
                                b10.setVisible(true);


                                } else {
                                    Score.fout++;
                                }   


                        }

                    });











    final JFrame frame = new JFrame("Nederlands hulp");


    frame.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/Rescources/img/Icon.png")));


    frame.setSize(1000, 800);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setResizable(false);

    // Knoppen
            frame.add(b1);
            frame.add(b2);
            frame.add(b3);
            frame.add(b4);
            frame.add(b5);
            frame.add(b6);
            frame.add(b7);
            frame.add(b8);
            frame.add(b9);
            frame.add(b10);


            // Textfields
            frame.add(Tx1);
            frame.add(Tx2);
            frame.add(Tx3);
            frame.add(Tx4);
            frame.add(Tx5);
            frame.add(Tx6);
            frame.add(Tx7);
            frame.add(Tx8);

            // Text areas
            frame.add(Tex1);
            frame.add(Tex2);
            frame.add(Tex3);
            frame.add(Tex4);
            frame.add(Tex5);
            frame.add(Tex6);
            frame.add(Tex7);
            frame.add(Tex8);

            // Ander
            frame.add(ow1);

    frame.add(imglabel2);
    imglabel2.setBounds(0, 0, 1000, 800);

    frame.setLocationRelativeTo(null);
    frame.getContentPane().setBackground(Color.BLACK);
    frame.setLayout(null);



    b2.addActionListener(new ActionListener() {


        public void actionPerformed(ActionEvent e) {
            System.exit(0);
            System.out.println("Alle Taken Gestopt");

        }

    });

    lb3.addActionListener(new ActionListener() {




        @SuppressWarnings("deprecation")
        @Override
        public void actionPerformed(ActionEvent e) {
            if(Txp1.getText().contains("leerling") && Txp2.getText().contains("78132")) {
                login.setVisible(false);
                frame.setVisible(true);

            }

        }

    });

    // eerste gedeelte




    }
    public static void main(String[] args) {
    new JpanelFrame();  


    }



   }

   /*
    * 
    * Toevoegen:
    * MLG Geluid op goed streak [Klaar]
    * Meer dingen voor frame
    *  Frame achtergrond
    *  knop plaatje
    *  Splash screen [Klaar]
    *  Login [Klaar]
    */

And my audio class is:

 package me.NL.framed;

 import javax.sound.sampled.AudioInputStream;
 import javax.sound.sampled.AudioSystem;
 import javax.sound.sampled.Clip;

 public class Sound {





 public static synchronized void playSound(final String url) {





        new Thread(new Runnable() {  // the wrapper thread is unnecessary, unless it blocks on the Clip finishing, see comments
          public void run() {

            try {
              Clip clip = AudioSystem.getClip();
              AudioInputStream inputStream =     A udioSystem.getAudioInputStream(Sound.class.getResource("/Rescources/" + url));
              clip.open(inputStream);
              clip.start(); 
            } catch (Exception e) {
              System.err.println(e.getMessage());
            }
          }
        }).start();
      }




  }

In any scenario, you need to ensure that the resource denoted by

"/Rescources/" + url

Is actually available in your classpath, either in the form of a jar or as a folder.

The reason it is working in eclipse is probably because eclipse might be copying the Resource folder to your bin or classes directory.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM