
- Java.lang - Home
- Java.lang - Boolean
- Java.lang - Byte
- Java.lang - Character
- Java.lang - Character.Subset
- Java.lang - Character.UnicodeBlock
- Java.lang - Class
- Java.lang - ClassLoader
- Java.lang - Compiler
- Java.lang - Double
- Java.lang - Enum
- Java.lang - Float
- Java.lang - InheritableThreadLocal
- Java.lang - Integer
- Java.lang - Long
- Java.lang - Math
- Java.lang - Number
- Java.lang - Object
- Java.lang - Package
- Java.lang - Process
- Java.lang - ProcessBuilder
- Java.lang - Runtime
- Java.lang - RuntimePermission
- Java.lang - SecurityManager
- Java.lang - Short
- Java.lang - StackTraceElement
- Java.lang - StrictMath
- Java.lang - String
- Java.lang - StringBuffer
- Java.lang - StringBuilder
- Java.lang - System
- Java.lang - Thread
- Java.lang - ThreadGroup
- Java.lang - ThreadLocal
- Java.lang - Throwable
- Java.lang - Void
- Java.lang Package Useful Resources
- Java.lang - Useful Resources
- Java.lang - Discussion
Java Thread getContextClassLoader() Method
Description
The Java Thread getContextClassLoader() method returns the context ClassLoader for this Thread. The context ClassLoader is provided by the creator of the thread for use by code running in this thread when loading classes and resources.
Declaration
Following is the declaration for java.lang.Thread.getContextClassLoader() method
public ClassLoader getContextClassLoader()
Parameters
NA
Return Value
This method returns the context ClassLoader for this Thread.
Exception
SecurityException − if a security manager exists and its checkPermission method doesn't allow getting the context ClassLoader.
Example: Getting Context Class Loader
The following example shows the usage of Java Thread getContextClassLoader() method. In this program, we've created a thread class ThreadDemo by implementing Runnable interface. In constructor, a new thread is created using new Thread. In run() method, we've retrieved the thread's context class loader using getContextClassLoader() method and then set the same. Lastly we've printed the class and parent.
package com.tutorialspoint; 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(); } }
Output
Let us compile and run the above program, this will produce the following result −
Class = class jdk.internal.loader.ClassLoaders$AppClassLoader Parent = jdk.internal.loader.ClassLoaders$PlatformClassLoader@15aea7ab