Java 如何导出带有图像和声音的可运行Jar?

Java 如何导出带有图像和声音的可运行Jar?,java,image,jframe,inputstream,embedded-resource,Java,Image,Jframe,Inputstream,Embedded Resource,我正在为我的朋友制作一个基本程序,显示他这张有趣的照片并循环一个声音。当我导出我的JAR时,它不起作用,所以我用WinRar打开JAR,文件在那里,但它们没有播放 代码: //imports public class twerk { static File fl = new File("res//sounds//liver.au"); static int loo = 1; static JFrame frame = new JFrame("COLLIN"); public static vo

我正在为我的朋友制作一个基本程序,显示他这张有趣的照片并循环一个声音。当我导出我的JAR时,它不起作用,所以我用WinRar打开JAR,文件在那里,但它们没有播放

代码:

//imports
 public class twerk {
static File fl = new File("res//sounds//liver.au");
static int loo = 1;
static JFrame frame = new JFrame("COLLIN");
public static void frame(){
    frame.setSize(1086,800);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setResizable(false);
    ImageIcon image = new ImageIcon("res//images//collin.jpg");
    JLabel label = new JLabel(image);
    frame.add(label, BorderLayout.NORTH);
    frame.setIconImage(image.getImage());
    frame.setVisible(true);
    try
    {

        String st =fl.getPath();
        InputStream in = new FileInputStream(st);
        AudioStream au = new AudioStream(in);
        AudioPlayer.player.start(au);
        if(loo == 1){
            Thread.sleep(1900);
            frame();
        }

    } catch(Exception e){}
}
    public static void main(String[] args){


    frame();

}

}
在WinRar中打开的JAR文件的图片


因此,您可以看到images和sounds文件夹位于jar文件中,但是在部署时它们没有被使用,这些资源已经成为一个重要的资源。在这种情况下,必须通过
URL
而不是
File
访问资源。有关形成
URL
的方法,请参阅标签的

请注意路径。根据该清单:

"res//images//collin.jpg" 
应成为:

"/images/collin.jpg"