Java tutorial
/* * Copyright 2003-2008 The Apache Software Foundation. * * 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.io.InputStream; /** * * @author <a href="mailto:wglass@apache.org">Will Glass-Husain</a> * @version $Id: ClassUtils.java 685685 2008-08-13 21:43:27Z nbubna $ * @since 1.5 */ public class Main { /** * Finds a resource with the given name. Checks the Thread Context * classloader, then uses the System classloader. Should replace all * calls to <code>Class.getResourceAsString</code> when the resource * might come from a different classloader. (e.g. a webapp). * @param claz Class to use when getting the System classloader (used if no Thread * Context classloader available or fails to get resource). * @param name name of the resource * @return InputStream for the resource. */ public static InputStream getResourceAsStream(Class claz, String name) { InputStream result = null; /** * remove leading slash so path will work with classes in a JAR file */ while (name.startsWith("/")) { name = name.substring(1); } ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); if (classLoader == null) { classLoader = claz.getClassLoader(); result = classLoader.getResourceAsStream(name); } else { result = classLoader.getResourceAsStream(name); /** * for compatibility with texen / ant tasks, fall back to * old method when resource is not found. */ if (result == null) { classLoader = claz.getClassLoader(); if (classLoader != null) result = classLoader.getResourceAsStream(name); } } return result; } }