当前位置: 首页 > 知识库问答 >
问题:

使用ClassLoader检索资源的路径

越高峻
2023-03-14

基本上,我希望在JAR文件中包含我的主JFrame图标,这样就不需要从外部位置加载它。

为了实现这一点,我搜索了Java的资源系统。我对Eclipse做了什么:

>

  • 我已创建了一个名为“res”的新文件夹:

    我用Windows浏览器复制了里面的文件:

    我已将该文件夹设置为源文件夹:

    我编写了以下代码

    URL url = ClassLoader.getSystemResource("/res/icona20.ico");
    

    但是urlnull。我做错了什么?

  • 共有2个答案

    陈龙野
    2023-03-14

    类加载器将从添加到类路径的每个源文件夹开始获取资源。因此,URL应如下所示:

    URL url = ClassLoader.getSystemResource("icona20.ico");
    
    郏扬
    2023-03-14

    如前所述,您似乎已将res添加为源文件夹,因此它是根目录,而不是名称,如src

    URL url = ClassLoader.getSystemResource("icona20.ico");
    

    类加载器使用绝对(区分大小写)路径,没有显式的前导斜杠/...

    相对路径与绝对路径的强制性前导斜杠:

    URL url = Xyz.class.getResource("/icona20.ico");
    

    您可能更喜欢. png而不是. ico,因为后者在JavaSE中不是标准格式。

    (关于常见做法。)构建工具maven使用以下源文件夹作为标准:

    /src/main/java/
    /src/main/resources/
    /src/test/java/
    /src/test/resources/
    

    使用res会让人想起MS Visual Studio;)。

     类似资料:
    • 我正在使用和版本27,在上一个版本中,我为我的项目使用了新的字体资源功能,但一天后,这行代码出现了3次崩溃 崩溃报告说这是因为android。所容纳之物无法检索res.Resources$NotFoundException和字体资源。所有3次崩溃都发生在android版本为5.1.1的用户身上。这是支持库中的错误还是我做错了什么?

    • 本文将介绍 Weex 中 uri(url) 的用法。包括使用图像、字体等资源,处理相对路径以及如何访问本地及打包的资源文件。 Schemes 本地资源 Weex SDK 提供 local scheme 来访问打包在应用程序中的资源,此 scheme 无法在 H5 环境下使用。目前,开发者可以在 image 组件和字体文件中使用本地资源。 在 iOS 中,Weex 会在 bundle resourc

    • 资源路由 支持设置RESTFul请求的资源路由,方式如下: Route::resource('blog','index/blog'); 表示注册了一个名称为blog的资源路由到index模块的Blog控制器,系统会自动注册7个路由规则,如下: 标识 请求类型 生成路由规则 对应操作方法(默认) index GET blog index create GET blog/create create s

    • 我已经下载了WorldWindJava SDK并运行了HelloWorldWind示例。但是,每次我都会得到以下错误: 我试图使用浏览器导航到URL,但连接超时了。 我有什么想法可以解决这个问题或解决这个问题吗?

    • 问题内容: 是否有API可以获取类路径资源(例如,我将从中获得的资源)?理想情况下,我想将新的API与类路径资源一起使用。 问题答案: 这对我有用:

    • 是否有API来获取类路径资源(例如,我从)作为获取的类路径资源?理想情况下,我希望使用带有类路径资源的新的API。