private static void initialize(String prefix, File file) { String name = file.getName(); if (file.isDirectory()) { File[] files = file.listFiles(); String newPrefix = (prefix.length() == 0) ? name : prefix + "." + name; for (int i = 0; i < files.length; i++) { initialize(newPrefix, files[i]); } } else { if (name.endsWith(".class")) { String className = prefix + "." + name.substring(0, name.length() - 6); ClassInitializer.initialize(className); } } } }
return; initialize(bootPath, pathSeparator); String javaHome = System.getProperty("java.home"); String fileSeparator = System.getProperty("file.separator");
/** * Initializes all classes in current classpath. */ public static void initializeClassPath() { String classPath = System.getProperty("java.class.path"); String pathSeparator = System.getProperty("path.separator"); if ((classPath == null) || (pathSeparator == null)) { LogContext.warning("Cannot initialize classpath through system properties"); return; } initialize(classPath, pathSeparator); }
@Override public Object getField(Class forClass, Class type, boolean inherited) { ClassInitializer.initialize(forClass); return getField2(forClass, type, inherited); } private Object getField2(Class forClass, Class type, boolean inherited) {
/** * Initializes all the classes in the specified jar file. * * @param jarName the jar filename. */ public static void initializeJar(String jarName) { try { LogContext.info("Initialize Jar file: " + jarName); ZipFile jarFile = new ZipFile(jarName); if (!jarFile.getClass().getName().equals("java.util.zip.ZipFile")) { LogContext.warning("Initialization of classes in jar file not supported for J2ME build"); return; } Enumeration e = jarFile.entries(); while (e.hasMoreElements()) { ZipEntry entry = (ZipEntry) e.nextElement(); String entryName = entry.getName(); if (entryName.endsWith(".class")) { String className = entryName.substring(0, entryName.length() - 6); className = className.replace('/', '.'); ClassInitializer.initialize(className); } } } catch (Exception e) { LogContext.error(e); } }
/** * Initializes all the classes in the specified directory. * * @param dirName the name of the directory containing the classes to * initialize. */ public static void initializeDir(String dirName) { LogContext.info("Initialize Directory: " + dirName); File file = new File(dirName); if (!file.getClass().getName().equals("java.io.File")) { LogContext.warning("Initialization of classes in directory not supported for J2ME build"); return; } if (file.isDirectory()) { File[] files = file.listFiles(); for (int i = 0; i < files.length; i++) { initialize("", files[i]); } } else { LogContext.warning(dirName + " is not a directory"); } }