final Vm vm = new Vm(arch, null, cl.getStatics(), false);
final Vm vm = new Vm("?", arch, null, cl.getStatics(), false);
	private void doExecute() throws BuildException, ClassNotFoundException, IllegalAccessException, IOException {		final VmArchitecture arch = getArchitecture();		final int slotSize = arch.getReferenceSize();		VmSystemClassLoader cl = new VmSystemClassLoader(classesURL, arch);		final Vm vm = new Vm(arch, null, cl.getStatics(), false);		vm.toString(); // Just to avoid compiler warnings		VmType.initializeForBootImage(cl);		long lastModified = 0;		FileWriter fw = new FileWriter(destFile);		PrintWriter out = new PrintWriter(fw);		out.println("; " + destFile.getPath());		out.println("; THIS file has been generated automatically on " + new Date());		out.println();		for (Iterator j = classes.iterator(); j.hasNext();) {			final ClassName cn = (ClassName) j.next();			final URL classUrl = cn.getURL(classesURL);			lastModified = Math.max(lastModified, classUrl.openConnection().getLastModified());			out.println("; Constants for " + cn.getClassName());			if (cn.isStatic()) {				Class cls = Class.forName(cn.getClassName());				Field fields[] = cls.getDeclaredFields();				for (int i = 0; i < fields.length; i++) {					Field f = fields[i];					if (Modifier.isStatic(f.getModifiers()) && Modifier.isPublic(f.getModifiers())) {						Object value = f.get(null);						if (value instanceof Number) {							String cname = cls.getName();							int idx = cname.lastIndexOf('.');							if (idx > 0) {								cname = cname.substring(idx + 1);							}							String name = cname + "_" + f.getName();							out.println(name + " equ " + value);						}					}				}				out.println();			} else {				out.println("; VmClass: " + cn.getClassName());				VmType vmClass = cl.loadClass(cn.getClassName(), true);				vmClass.link();				String cname = vmClass.getName().replace('/', '.');				int idx = cname.lastIndexOf('.');				if (idx > 0) {					cname = cname.substring(idx + 1);				}				int cnt = vmClass.getNoDeclaredFields();				for (int i = 0; i < cnt; i++) {					final VmField f = vmClass.getDeclaredField(i);					if (!f.isStatic()) {						final VmInstanceField instF = (VmInstanceField) f;						String name = cname + "_" + f.getName().toUpperCase() + "_OFFSET";						out.println(name + " equ " + (instF.getOffset() / slotSize));					}				}				// The size				if (vmClass instanceof VmNormalClass) {					final VmNormalClass cls = (VmNormalClass) vmClass;					out.println(cname + "_SIZE equ " + cls.getObjectSize());				}				//				out.println();			}		}		out.flush();		fw.flush();		out.close();		fw.close();		destFile.setLastModified(lastModified);	}