import java.io.*; import java.util.*; import java.util.jar.*; public class Test { public static void main(String[] args) { final String PATH = "c:\\eclipse-SDK-20020620-win32\\eclipse\\workspace\\test\\"; final int INITIAL_CAPACITY = 10000; final int FILES = 50; final int DECLARATIONS_PER_FILE = 2000; try { File[] files = new File(PATH).listFiles(new FilenameFilter() { public boolean accept(File dir, String name) { return name != null && name.trim().endsWith(".jar"); } }); List list = new ArrayList(INITIAL_CAPACITY); JarFile jarFile; Enumeration e; Object o; JarEntry jarEntry; String name; for (int i = 0, l = files.length; i < l; i++) { jarFile = new JarFile(files[i]); e = jarFile.entries(); while (e.hasMoreElements()) { o = e.nextElement(); if (o instanceof JarEntry) { jarEntry = (JarEntry) o; name = jarEntry.getName(); if (name != null) { name = name.trim(); if (name.endsWith(".class") && name.indexOf("$") == -1) { list.add(name.substring(0, name.length() - 6).replace('/', '.')); } } } } } int size = list.size(); for (int i = 0; i < FILES; i++) { BufferedWriter writer = new BufferedWriter(new FileWriter(PATH + "Output" + i + ".java")); writer.write("public class Output" + i + " {"); writer.newLine(); writer.newLine(); for (int j = 0; j < DECLARATIONS_PER_FILE; j++) { writer.write("\t" + list.get((int) (Math.random() * size)) + " _" + j + ";"); writer.newLine(); } writer.write("}"); writer.newLine(); writer.flush(); writer.close(); } } catch (IOException eIO) { } } }