打包之后为何资源不可用? 我用 jar 命令将图片文件(jpg文件)打包。结果用 java -jar 命令运行打包文件时出现 NullPointerException 异常,请问这是什么原因?如何解决? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 搜索一下 Fat jar 吧。如果你的程序测试的时候没问题,用这个打包 就不会有问题了。另外,你这样描述问题,很难回答 以下内容从网上摘抄:以下是一个小工具MSNHistoryCombiner中用到的一段代码,可以从jar中装载图片和文本信息。譬如,你的jar中根目录下有个img目录,里面放有一些图片,如img1.jpg,你可以这样调用:Utilities.getImageFromJar("/img/img1.jpg", YourClass.class); 注意必须这里是“/img/img1.jpg”而非“img/img1.jpg”。从jar中读文本资源也是类似方法调用getTextFromJar。import java.awt.Image; import java.awt.Toolkit; import java.io.*; public class ResourseReader { public ResourseReader() { } public static Image getImageFromJar(String s, Class class1) { Image image = null; InputStream inputstream = class1.getResourceAsStream(s); if(inputstream != null) { ByteArrayOutputStream bytearrayoutputstream = new ByteArrayOutputStream(); try { byte abyte0[] = new byte[1024]; for(int i = 0; (i = inputstream.read(abyte0)) >= 0; ) { bytearrayoutputstream.write(abyte0, 0, i); } image = Toolkit.getDefaultToolkit().createImage(bytearrayoutputstream.toByteArray()); } catch(IOException ioexception) { ioexception.printStackTrace(); } } return image; } public static String getTextFromJar(String s, Class class1) { String s1 = ""; InputStream inputstream = class1.getResourceAsStream(s); if(inputstream != null) { BufferedReader bufferedreader = new BufferedReader(new InputStreamReader(inputstream)); String s2; try { while((s2 = bufferedreader.readLine()) != null) { s1 = s1 + s2 + "\n"; } } catch(IOException ioexception) { ioexception.printStackTrace(); } } return s1; } } 那有可能是LZ未把所有的class打包进去 也可能是路径问题 manifest 文件包含进去了吗? 同意楼上的,必须包含manifest文件,在这个文件里定义Main class作为启动的类。java交流群,欢迎大家进来!!! 群号:55919698 怎样学习 java 的GUI编程 为什么java中的boolean长度是一个bit 请教一个IO流与数据库的问题,只要给出代码解决,马上结帖!!! 我的程序怎么错了,给指点一下 我想请教一个关于鼠标和键盘事件的问题,请教各位大大告诉我以下 什么是hashcode?他和对象有什么关系? 怎样获得TabbedPane中标签的名称 applet与servlet通信的问题 哪有thinking in java中文版啊? 有谁知道 怎样从www.bestdown.com下载书籍,可以送50分,快来拿阿 打包出现的问题。 关于字符串拆分问题(急)
import java.awt.Image;
import java.awt.Toolkit;
import java.io.*;
public class ResourseReader
{
public ResourseReader()
{
}
public static Image getImageFromJar(String s, Class class1)
{
Image image = null;
InputStream inputstream = class1.getResourceAsStream(s);
if(inputstream != null)
{
ByteArrayOutputStream bytearrayoutputstream = new ByteArrayOutputStream();
try
{
byte abyte0[] = new byte[1024];
for(int i = 0; (i = inputstream.read(abyte0)) >= 0; )
{
bytearrayoutputstream.write(abyte0, 0, i);
}
image = Toolkit.getDefaultToolkit().createImage(bytearrayoutputstream.toByteArray());
}
catch(IOException ioexception)
{
ioexception.printStackTrace();
}
}
return image;
}
public static String getTextFromJar(String s, Class class1)
{
String s1 = "";
InputStream inputstream = class1.getResourceAsStream(s);
if(inputstream != null)
{
BufferedReader bufferedreader = new BufferedReader(new InputStreamReader(inputstream));
String s2;
try
{
while((s2 = bufferedreader.readLine()) != null)
{
s1 = s1 + s2 + "\n";
}
}
catch(IOException ioexception)
{
ioexception.printStackTrace();
}
}
return s1;
}
}
也可能是路径问题
java交流群,欢迎大家进来!!! 群号:55919698