Java ClassLoader getResource() 方法



描述

Java ClassLoader getResource() 方法查找具有给定名称的资源。资源是一些数据(图像、音频、文本等),类代码可以以独立于代码位置的方式访问这些数据。资源的名称是一个用“/”分隔的路径名,用于标识资源。

声明

以下是java.lang.ClassLoader.getResource() 方法的声明

public URL getResource(String name)

参数

name − 这是资源名称。

返回值

此方法返回用于读取资源的 URL 对象,如果找不到资源或调用者没有足够的权限获取资源,则返回 null。

异常

从类路径获取资源示例

以下示例演示了 java.lang.ClassLoader.getResource() 方法的用法。在这个程序中,我们检索了 ClassLoaderDemo 的类。然后使用 getClassLoader(),我们获取所需的 ClassLoader 并使用 getClass() 打印类加载器类。现在假设 file.txt 位于 java 程序的类路径中,我们使用 getResource() 方法检索文件的 URL 并打印它。

package com.tutorialspoint;

import java.net.URL;

public class ClassLoaderDemo {

   public static void main(String[] args) throws Exception {
     
      Class cls = Class.forName("com.tutorialspoint.ClassLoaderDemo");

      // returns the ClassLoader object associated with this Class
      ClassLoader cLoader = cls.getClassLoader();
    
      System.out.println(cLoader.getClass());
    
      // finds resource
      URL url = cLoader.getResource("file.txt");
      System.out.println("Value = " + url);
   }
} 

输出

让我们编译并运行上述程序,这将产生以下结果:

class jdk.internal.loader.ClassLoaders$AppClassLoader
Value = file:/C:/Users/Tutorialspoint/eclipse-workspace/Tutorialspoint/lib/file.txt

从类路径检查资源示例

以下示例演示了 java.lang.ClassLoader.getResource() 方法的用法。在这个程序中,我们检索了 ClassLoaderDemo 的类。然后使用 getClassLoader(),我们获取所需的 ClassLoader 并使用 getClass() 打印类加载器类。现在假设 a.txt 不在类路径中,我们使用 getResource() 方法检索文件的 URL 为 null 并打印它。

package com.tutorialspoint;

import java.net.URL;

public class ClassLoaderDemo {

   public static void main(String[] args) throws Exception {
     
      Class cls = Class.forName("com.tutorialspoint.ClassLoaderDemo");

      // returns the ClassLoader object associated with this Class
      ClassLoader cLoader = cls.getClassLoader();
    
      System.out.println(cLoader.getClass());

      // finds resource
      URL url = cLoader.getResource("newfolder/a.txt");
      System.out.println("Value = " + url);  
   }
} 

输出

让我们编译并运行上述程序,这将产生以下结果:

class jdk.internal.loader.ClassLoaders$AppClassLoader
Value = null
java_lang_classloader.htm
广告
© . All rights reserved.