Ключевым понятием, которое нужно понять, является то, что файлов не существует внутри jar .Вместо этого вы должны получить данные в качестве ресурса, доступного только для чтения, и вам нужно будет использовать путь относительно пути к файлам ваших классов.
Если вы все еще застряли, возможно, вам придется сообщить намболее подробную информацию о вашей текущей программе, ее структуре, типе данных, которые вы пытаетесь получить, где он находится в файле JAR и как вы пытаетесь его использовать.
Например, скажем, вашСтруктура пакета выглядела так:
Таким образом, файл класса находится в пакете codePackage (это Eclipse, поэтому файлы классов живут во вселенной, параллельной файлам java),и местоположение ресурса находится в пакете codePackage.images, но относительно файла класса это каталог изображений, вы можете использовать ресурс следующим образом:
package codePackage;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import javax.swing.*;
public class ClassUsesResources {
private JLabel label = new JLabel();
public ClassUsesResources() {
try {
BufferedImage img = ImageIO.read(getClass().getResourceAsStream(
"images/img001s.jpg"));
ImageIcon icon = new ImageIcon(img);
label.setIcon(icon);
JOptionPane.showMessageDialog(null, label);
} catch (IOException e) {
e.printStackTrace();
System.exit(-1);
}
}
public static void main(String[] args) {
new ClassUsesResources();
}
}