Bryan Tong Minh wrote:
Note that you can't simply check (or reverse-engineer) that JVM X doesn't treat it as a jar, since it could be detected in X-1 or X+1. So there should be a range of still in use JVMs to assert.
I think that the most recent version should be sufficient. I don't think Java would break backwards compatibility: users wouldn't be happy if their old jar suddenly stops working on a new JVM.
Bryan
Have you seen Conficker's autorun.inf? It's purpusefully mae to look like garbage. It's full of NULs, contain non-printable characters, keys with mixed case...
That's a perfect example where a change would give no backwards compatibility issues. The legit autorun.inf, made as plain ini files won't break if "icon\01\15=" is no longer recognised as the "icon" key.
Good jars wouldn't be affected if eg. Java 3 accepted central directories pointing anywhere and now they are required to point to a zip entry.