Java ClassLoader getSystemResource() 方法



描述

Java ClassLoader getSystemResource() 方法从用于加载类的搜索路径中查找指定名称的资源。

声明

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

public static URL getSystemResource(String name)

参数

name − 资源名称。

返回值

此方法返回一个用于读取资源的 URL 对象,如果找不到资源则返回 null。

异常

从类路径获取资源示例

以下示例演示了 java.lang.ClassLoader.getSystemResource() 方法的用法。在这个程序中,我们检索了 ClassLoaderDemo 的类。然后使用 getClassLoader() 获取所需的 ClassLoader 并使用 getClass() 打印类加载器类。现在假设 file.txt 位于 java 程序的类路径中,我们使用 getSystemResource() 方法检索文件的 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.getSystemResource("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.getSystemResource() 方法的用法。在这个程序中,我们检索了 ClassLoaderDemo 的类。然后使用 getClassLoader() 获取所需的 ClassLoader 并使用 getClass() 打印类加载器类。现在假设 a.txt 不在类路径中,我们使用 getSystemResource() 方法检索文件的 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.getSystemResource("newfolder/a.txt");
      System.out.println("Value = " + url);  
   }
} 

输出

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

class jdk.internal.loader.ClassLoaders$AppClassLoader
Value = null
java_lang_classloader.htm
广告