Java Can';无法从jar加载资源

Java Can';无法从jar加载资源,java,eclipse,jar,Java,Eclipse,Jar,我在尝试将java项目导出到runnable jar时遇到了问题。代码在eclipse中运行,但导出后无法获取资源。eclipse中的dir结构 project_A - src - package_a - a.java - res - b.png 罐内结构 A - src - A.class res - b.png META-INF - MANIFEST 舱单上有什么 Manifest-Version: 1.0 Cl

我在尝试将java项目导出到runnable jar时遇到了问题。代码在eclipse中运行,但导出后无法获取资源。eclipse中的dir结构

project_A - src - package_a - a.java
                            - res - b.png
罐内结构

A - src - A.class
    res - b.png
    META-INF - MANIFEST
舱单上有什么

Manifest-Version: 1.0  
Class-Path: .  
Main-Class: project_A.A_class
我使用以下代码来获取图像资源

URL url = getClass().getResource("res/b.png");          
img_bg = ImageIO.read(url);
这段代码在Eclipse中工作,但仅使用相对路径,如果我将
res dir
设置为与
src dir
相同的级别,则上述代码也不工作,始终返回空输入

当我执行jar时,我看不到这个程序的路径,不知道如何在没有输出信息的情况下进行调试

那么,有谁能帮我弄清楚什么是正确的结构,以及如何在jar中获取图像呢



我的错误,第一个eclipse结构是错误的,它的结构与Betlista的anwser中所示的结构相同,我认为,您的问题中有几个错误的陈述,我的项目如下所示:

这是ResourceTest的内容

import java.io.IOException;
import java.net.URL;

import javax.imageio.ImageIO;


public class ResourceTest {

    public static void main(String[] args) throws IOException {
        URL resource = ResourceTest.class.getResource("/pict.png");
        assert resource != null : "Resource is null";
        ImageIO.read(resource);
    }

}
我导出了
res_test.jar
,当我运行
java-jar res_test.jar
时,它对我有效

罐子里的东西是

res\u test.jar
+-META-INF
+-MANIFEST.MF
+-pict.png
+-资源测试类
而MANIFEST.MF的内容是

清单版本:1.0
类路径:。
主要类别:资源测试

尝试使用
getClass().getResource(“/res/b.png”)
。另外,您是否确定
b.png
实际上驻留在Jar文件中,就像我认为Eclipse没有包含
src
目录中的资源一样……您的代码是无效的Java代码。清单中的主类条目与任何类都不匹配。jar中类文件的名称与Java源文件的名称不匹配。告诉我们真相。