   # we don't actually load from this file, but it has to look like a valid filename
   'sun.boot.class.path': '/System/Library/Frameworks/JavaVM.framework/Classes/classes.jar',
   # this doesn't actually exist in our classes.jar, but no other GraphicsEnvironment does either
-  'java.awt.graphicsenv': 'sun.awt.X11GraphicsEnvironment'
+  'java.awt.graphicsenv': 'sun.awt.X11GraphicsEnvironment',
+  'useJavaUtilZip': 'true'  # hack for sun6javac, avoid ZipFileIndex shenanigans
 }
 
 get_field_from_offset = (rs, cls, offset) ->

                         stat: {
                           size: file.length
                         }
              try
                file = fs.openSync fullpath, 'r'
              catch e
                return gLong.ZERO
              rs.set_zip_descriptor
                fullpath: fullpath
                name: entry_name
                file: file
                stat: fs.fstatSync file
          o 'freeEntry(JJ)V', (rs, jzfile, jzentry) -> rs.free_zip_descriptor jzentry
          o 'getCSize(J)J', (rs, jzentry) ->
              ze = rs.get_zip_descriptor jzentry

                # yep, hardcoded. though I'm not sure a correct value actually matters...
                return 21090
              zipfile = rs.get_zip_descriptor jzfile
              unless zipfile.entries?
                zipfile.entries = {}
                add_entries = (dir) ->
                  curr_dir_entries = fs.readdirSync dir
                  for name in curr_dir_entries
                    fullpath = "#{dir}/#{name}"
                    stat = fs.statSync fullpath
                    zipfile.entries[fullpath] = rs.set_zip_descriptor {fullpath,name,stat}
                    if stat.isDirectory()
                      add_entries fullpath
                add_entries zipfile.path
              _.keys(zipfile.entries).length
          o 'getEntry(JLjava/lang/String;Z)J', (rs, jzfile, name, add_slash) ->
              zf = rs.get_zip_descriptor jzfile
              entry_name = rs.jvm2js_str name
