/* * Copyright (C) 2017 The Android Open Source Project * * 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.util.Arrays; public class Main { public static void main(String[] args) throws Exception { doTest(); } private static void doTest() throws Exception { doTest(true, "B"); doTest(false, "A"); System.out.println("Done"); } private static void doTest(boolean boot, String className) throws Exception { ClassLoader expectedClassLoader; if (boot) { expectedClassLoader = Object.class.getClassLoader(); } else { expectedClassLoader = ClassLoader.getSystemClassLoader(); } Class c = Class.forName(className, false, ClassLoader.getSystemClassLoader()); if (c.getClassLoader() != expectedClassLoader) { throw new RuntimeException(className + "(" + boot + "): " + c.getClassLoader() + " vs " + expectedClassLoader); } else { System.out.println(className + " was loaded with " + (boot ? "boot" : "system") + " classloader"); } } }