我正在尝试将我的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);
}
}
答案 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);
}
}
然后使用默认选项导出到jar(不是runnable jar),主类
除外
然后
java -jar my.jar
和voilà