Java.lang.Thread.setContextClassLoader() Method



Description

The java.lang.Thread.setContextClassLoader() method sets the context ClassLoader for this Thread.The context ClassLoader can be set when a thread is created, and allows the creator of the thread to provide the appropriate class loader to code running in the thread when loading classes and resources.

Declaration

Following is the declaration for java.lang.Thread.setContextClassLoader() method

public void setContextClassLoader(ClassLoader cl)

Parameters

cl − This is the context ClassLoader for this Thread.

Return Value

This method does not return any value.

Exception

SecurityException − if the current thread cannot set the context ClassLoader.

Example

The following example shows the usage of java.lang.Thread.setContextClassLoader() method.

package com.tutorialspoint;

import java.lang.*;

public class ThreadDemo implements Runnable {

   Thread t;

   ThreadDemo() {

      t = new Thread(this);
      // this will call run() function
      t.start();
   }

   public void run() {

      ClassLoader c = t.getContextClassLoader();
      // sets the context ClassLoader for this Thread
      t.setContextClassLoader(c);
      System.out.println("Class = " + c.getClass());
      System.out.println("Parent = " + c.getParent());
   }

   public static void main(String args[]) {
      new ThreadDemo();
   }
} 

Let us compile and run the above program, this will produce the following result −

Class = class sun.misc.Launcher$AppClassLoader
Parent = sun.misc.Launcher$ExtClassLoader@35a16869
java_lang_thread.htm
Advertisements