先说功能,我写的程序里要从image目录里调用jpg图片,在项目中编译正常的程序打包成jar就不正常了,然后我在调用图片之前加了如下的语句
String icon = "image/test.jpg";
JButton item = new JButton("test");
item.setIcon(new ImageIcon(MainFrame.class.getResource(icon)));
然后程序在编译时报空指针异常,相关错误中就指这上面的最一后行,请问这是什么原因造成?我如果把最后一行写成
item.setIcon(new ImageIcon(icon));
就成编译通过,但这样行打包后是不能调用jar里的图片。
String icon = "image/test.jpg";
JButton item = new JButton("test");
item.setIcon(new ImageIcon(MainFrame.class.getResource(icon)));
然后程序在编译时报空指针异常,相关错误中就指这上面的最一后行,请问这是什么原因造成?我如果把最后一行写成
item.setIcon(new ImageIcon(icon));
就成编译通过,但这样行打包后是不能调用jar里的图片。
JButton item = new JButton("test");
item.setIcon(new ImageIcon(MainFrame.class.getClassLoader().getResource(icon)));
import java.awt.*;
import javax.swing.*;public class JarTest {
public static JFrame frm = new JFrame();
public static void main(String[] args)
{
JButton btn = new JButton("Test Button");
String icon = "image/test.gif";
// btn.setIcon(new ImageIcon(icon));
btn.setIcon(new ImageIcon(JarTest.class.getClassLoader().getResource(icon)));
frm.add(btn);
frm.pack();
frm.setVisible(true);
}
}其中注释掉的一句是可正常运行的,现在还没打包成JAR,只在项目中运行就遇到如下的报错语句
Exception in thread "main" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(ImageIcon.java:187)
at JarTest.main(JarTest.java:12)
我检查过了,不存在文件名和目录名的大小写错误,还是请高手帮我看看是什么原因造成??
试试
应该把image文件夹放在bin下;而不是src下如果选择getResource("image/a.jpg")
应该把image文件夹放在a.class,而不是a.java下试试吧~qq:350703354