staxextensionclassloader.java
来自「Software Testing Automation Framework (S」· Java 代码 · 共 71 行
JAVA
71 行
/*****************************************************************************//* Software Testing Automation Framework (STAF) *//* (C) Copyright IBM Corp. 2002 *//* *//* This software is licensed under the Common Public License (CPL) V1.0. *//*****************************************************************************/package com.ibm.staf.service.stax;import com.ibm.staf.*;import java.util.jar.*;import java.io.IOException;import java.io.InputStream;public class STAXExtensionClassLoader extends ClassLoader{ static public final boolean DEBUG = false; static public final String STAX_CLASS_PREFIX = "STAX-INF/classes/"; STAXExtensionClassLoader(JarFile jarFile, ClassLoader loader) { super(loader); fJarFile = jarFile; } public Class findClass(String name) throws ClassNotFoundException { if (DEBUG) System.out.println("Loading: " + name); Class theClass = null; try { JarEntry classEntry = fJarFile.getJarEntry(STAX_CLASS_PREFIX + name.replace('.', '/') + ".class"); if (classEntry != null) { InputStream classStream = fJarFile.getInputStream(classEntry); byte [] classData = new byte[(int)classEntry.getSize()]; int bytesToRead = classData.length; for (int bytesRead = 0; bytesToRead > 0; bytesToRead -= bytesRead) { bytesRead = classStream.read(classData, classData.length - bytesToRead, bytesToRead); } theClass = defineClass(name, classData, 0, classData.length); } } catch (IOException e) { if (DEBUG) { System.out.println("Caught IOException reading from " + "jar file " + fJarFile.getName() + ":"); e.printStackTrace(); } } if (theClass == null) throw new ClassNotFoundException(name); return theClass; } JarFile fJarFile;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?