Here you can find the source of loadClass(String className)
@SuppressWarnings({ "unchecked" }) public static <T> Class<T> loadClass(String className)
//package com.java2s; /**/* w w w.j av a 2 s. co m*/ * Copyright (C) 2011 Ovea <dev@ovea.com> * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import java.net.URL; import java.net.URLClassLoader; import java.util.Arrays; public class Main { @SuppressWarnings({ "unchecked" }) public static <T> Class<T> loadClass(String className) { try { return (Class<T>) Thread.currentThread().getContextClassLoader().loadClass(className); } catch (ClassNotFoundException e) { URL[] cp = tryToGetContextClassPath(); throw new IllegalArgumentException("Cannot load class [" + className + "] from classpath " + (cp == null ? "<unknown>" : Arrays.deepToString(cp)), e); } } public static URL[] tryToGetContextClassPath() { return tryToGetClassPath(Thread.currentThread().getContextClassLoader()); } public static URL[] tryToGetClassPath(ClassLoader cl) { if (cl instanceof URLClassLoader) { return ((URLClassLoader) cl).getURLs(); } return new URL[0]; } }