导出Java项目时,它不会导出我的资产

时间:2014-08-05 23:49:56

标签: java eclipse jar packaging

我正在尝试将我的java项目导出到可执行文件(.jar),但它不会带来它的资产(例如图片和东西)。我正在用Eclipse编程。我已经查看了其他有关此问题的论坛并尝试了他们的修复,但它似乎对我不起作用。我认为这个问题与我放置.gif和.wav的地方有关。我把它们与我的.java文件放在与src文件夹相同的文件夹中。这是我的代码。谢谢你的帮助!

class ImagePaneTest extends JFrame  
{  
  ImageIcon ic = new   ImageIcon("scary.gif");  
  JDesktopPane dp = new JDesktopPane();  
  JLabel lbl = new JLabel(ic);  
  JPanel transparentPanel = new JPanel();  

  public ImagePaneTest()  
   {  

      lbl.setBounds(0, 0, 553, 421);   

      dp.add(lbl,new Integer(50));  
      dp.add(transparentPanel,new Integer(350));  

      setLayeredPane(dp);  

   }  
   public static void main(String a[])  
   {  

       try {
            Thread.sleep(8000);
        } catch(InterruptedException ex) {
            Thread.currentThread().interrupt();
        }

       ImagePaneTest fr = new ImagePaneTest();  
       Image icon = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB_PRE);
       fr.setIconImage(icon);

       fr.setSize(553,421);   
       fr.setVisible(true);
       fr.toFront();
       fr.setLocation(370, 200);

       sound play = new sound();
       play.playSound("wail.wav");
       System.exit(0);
   }  

}

2 个答案:

答案 0 :(得分:0)

将资源放在src中,或者如果您正在使用Maven,src/main/resources

答案 1 :(得分:0)

您需要从中指定。 (点)

我们假设这个班级

import java.awt.Image;
import java.awt.image.BufferedImage;

import javax.swing.ImageIcon;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

class ImagePaneTest extends JFrame
{
    ImageIcon       ic                  = new ImageIcon("./images/nice.jpg");
    JDesktopPane    dp                  = new JDesktopPane();
    JLabel          lbl                 = new JLabel(ic);
    JPanel          transparentPanel    = new JPanel();

    public ImagePaneTest()
    {

        lbl.setBounds(0, 0, 553, 421);

        dp.add(lbl, new Integer(50));
        dp.add(transparentPanel, new Integer(350));

        setLayeredPane(dp);

    }

    public static void main(String a[])
    {
        ImagePaneTest fr = new ImagePaneTest();
        Image icon = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB_PRE);
        fr.setIconImage(icon);

        fr.setSize(553, 421);
        fr.setVisible(true);
        fr.toFront();
        fr.setLocation(370, 200);
    }

}

enter image description here

然后使用默认选项导出到jar(不是runnable jar),主类

除外

enter image description here

然后

java -jar my.jar 

和voilà

enter image description here