public static byte[] getClassFile(ClassLoader classLoader, String className) {
        if (classLoader == null) {
            classLoader = ClassLoader.getSystemClassLoader();
        }
        Objects.requireNonNull(className, "className");

        final String classInternalName = JavaAssistUtils.javaClassNameToJvmResourceName(className);
        final InputStream is = classLoader.getResourceAsStream(classInternalName);
        if (is == null) {
            throw new RuntimeException("No such class file: " + className);
        }
        try {
            return IOUtils.toByteArray(is);
        } catch (IOException e) {
            throw new RuntimeException(classInternalName + " class read fail");
        }
    }
// TODO duplicate BytecodeUtils : com.navercorp.pinpoint.profiler.test.util.BytecodeUtils
agent-module/profiler/src/test/java/com/navercorp/pinpoint/profiler/util/BytecodeUtils.java