Java tutorial
//package com.java2s; /* * Copyright 2014 Attila Szegedi, Daniel Dekany, Jonathan Revusky * * 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. */ public class Main { /** * Similar to {@link Class#forName(java.lang.String)}, but attempts to load * through the thread context class loader. Only if thread context class * loader is inaccessible, or it can't find the class will it attempt to * fall back to the class loader that loads the FreeMarker classes. */ public static Class forName(String className) throws ClassNotFoundException { try { ClassLoader ctcl = Thread.currentThread().getContextClassLoader(); if (ctcl != null) { // not null: we don't want to fall back to the bootstrap class loader return Class.forName(className, true, ctcl); } } catch (ClassNotFoundException e) { ;// Intentionally ignored } catch (SecurityException e) { ;// Intentionally ignored } // Fall back to the defining class loader of the FreeMarker classes return Class.forName(className); } }