On 17/05/2017 18:26, Eric Johnson wrote:

:
Here's a challenge back to the Jigsaw team. Can I still do java -jar ...
every existing Java application (without recompile!) that currently
launches that way? I'm even willing to cut some slack and ignore
applications that use com.sun APIs that have been "private" for years. Will
that still work? The Jigsaw community should be able to provide evidence
that's still possible, not that we should be required to provide evidence
that it isn't.
FWIW, the JDK has never been able to guarantee this at major releases. A typical JDK major release will have ~20000 changes that translate into a lot of code so there is a lot of potential for breakage or subtle behavior or performance changes. Even mundane things like rev'ing the class file version at every major release can be disruptive. Nothing to do with Project Jigsaw but there are many one-off changes in JDK 9 that will make it more disruptive than previous releases, e.g. moving to G1 as the default collector, switching to use CDLR locale data by default, the new version-string scheme, changes to the layout of the run-time image, .... it's a long list that will eventually show up as extensive release and compatibility notes.

As regards executable JARs then please bring up any specific issues if you run into them. The reason that there are weekly EA builds to get as much testing and feedback as possible. If you search around then you'll see that all the IDEs have been working with the JDK 9 builds, same thing for many other important tools and libraries in the eco system. We know of course that only a small percentage of developers will have the time or interest but having at least some people trying out builds and reporting issues (to the right place) is really important and has been part of how major releases have been developed for a long time.

As regards your command on cutting slack then be aware that the issue of existing applications run with `java -jar` but relying on direct access to the JDK internals has been discussed many times. There are JAR file attributes that can be added to the main manifest that are equivalent to the encapsulation busting command line options.

-Alan.

Reply via email to