JVM是根据你的文件系统来寻找class和资源的,由于你的程序一经打包,
getgetClass().getResource("/").getPath();的路径就和你未打包之前不同,所以才会找不到资源,解决办法如下:
JarFile jarFile = new JarFile(jarName);
Enumeration enum = jarFile.entries();
while (enum.hasMoreElements()) {
JarEntry entry = (JarEntry)enum.nextElement();
if (entry.isDirectory()) continue;
//下面这个字符串保存着不是目录的资源(如图片)或类(如.class文件)
String jar = entry.getName();
if (在这里填入你的资源名称以便查找) {
// 载入该资源!
InputStream is = jarFile.getInputStream(entry);
if (is == null)
throw new IOException("Unable to load resource /");
//is里包含了你想要的资源,余下就是你想要做的工作所以省略
...
}
}