Java 可运行Jar文件不';不加载资源

Java 可运行Jar文件不';不加载资源,java,image,swing,jframe,embedded-resource,Java,Image,Swing,Jframe,Embedded Resource,在IntelliJ中,我可以运行: ImageIcon icon = new ImageIcon("src/de/therealjan/tools/pictures/pic.png"); 但是在一个可运行的JAR文件中,这是行不通的。 我已经试过了“/pictures/pic.png”,但那也不行 有什么想法吗?您应该在类路径中添加映像或在类路径中添加目录 然后像这样加载图像: ClassLoader classLoader = Thread.currentThread().getContex

在IntelliJ中,我可以运行:

ImageIcon icon = new ImageIcon("src/de/therealjan/tools/pictures/pic.png");
但是在一个可运行的JAR文件中,这是行不通的。 我已经试过了“/pictures/pic.png”,但那也不行


有什么想法吗?

您应该在类路径中添加映像或在类路径中添加目录 然后像这样加载图像:

ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
URL resource = classLoader.getResource("src/de/therealjan/tools/pictures/pic.png");
ImageIcon icon = new ImageIcon(resource);

确保您的相对路径是正确的。这个问题的答案解释了如何获取启动程序的当前目录。我写了
URL=getClass().getResource(“src/de/therealjan/tools/pictures/pic.png”);ImageIcon img=新的ImageIcon(url)我得到了一个NullPointerException?我添加了另一种方法,您可以尝试。但是你从哪里得到的空指针?它不是getClass()的名称吗?还是在下一条线上?第二条路成功了。我能把它用在像txt这样的每个文件上吗?@TheRealJan试试
de/TheRealJan/tools/pictures/pic.png
我想你能。最好的方法是尝试:)