Java 7 is the only way to provide abstract file systems for loading protos. For example, we need to load from java resources instead of the real file system. With Java 8 coming out in a month and Java 6 having been EOL'd from paid support a few months ago I don't think there's any reason to support an 8 year old version. Java 6 support will be retained in the runtime for Android, of course.