private static Set<String> readPackages() {
   HashSet<String> pkgs = new HashSet<String>();
   String klass = "java/lang/Object.class";
   URL url = ClassLoader.getSystemClassLoader().getResource(klass);
   try {
     JarURLConnection connection = (JarURLConnection) url.openConnection();
     JarFile f = connection.getJarFile();
     Enumeration<JarEntry> entries = f.entries();
     while (entries.hasMoreElements()) {
       JarEntry e = entries.nextElement();
       String name = e.getName();
       if (name.endsWith(".class")) {
         String pkg = Shared.getSlashedPackageFrom(name);
         addPackageRecursively(pkgs, pkg);
       }
     }
     return pkgs;
   } catch (IOException e) {
     throw new InternalCompilerException("Unable to find JRE", e);
   }
 }