![]() And who knows, maybe we all stuck in limbo like about any database example still uses Class.forName although JDBC4 and ServiceLoader is around since Java7 back from 2010. Yes, something marked as deprecated always had the line "may get removed in future versions" - but never actually really did before Java9. Just "yea, broke when migrated from 8 to 9 / oracle open" is, at least to me, a bit like: "yea, heared it too much - can'T take it anymore".ĭon'T get me wrong - sure, this has to be addressed within the community to either stick to the mantra - or get rid of it as it doesn't seem to get followed anymore. It would had been interesting to dive into the code and stacktraces to see were it breaks to analyse what's causing it. So, thanks for sharing the story, but, at least for me and please, don't feel offended by it, in this way it doesn't really have any value. The current guide/documentation has been produced using the Oracle. The changes are fairly complex but a good summary and explanation of impact can be found here. Note there has been some changes in Licenses from Java SE 11. One can use Oracle JDK or OpenJDK check a comparison here. The million dollar question starts when you do comply to this but it still breaks due to implementation specific differences. Next versions of JPL will probably use 1.8+ language features. So, to add to your "a java dev learns from the get go": Never use anything beyond the limits of the SE API like sun.* com.sun.* and such. Same for the "oh, uhm, yea, Oracle VM won'T work": There has to be some very specific uses of code one shouldn't use to create that specific dependency. I guess there wasn't just the magic "it didn't worked no more" but actually a lot of exception stacktraces and such one sure could had at least tried to figure out what exactly gone wrong. There are other differences as well which is related to the support and cost. This brings me back around to ask: "What broke?". So, by this line, unless you use some features specific to the VM vendor and version you currently use your code should run accross all VMs, at least of the same major version. I can't remember the exact point in time and version - but if memory serves correctly on this one, at some point I started reading this line: "OpenJDK is the official reference implementation". So the overall transition from Java8 and anything older to Java9 or anything newer can have the issue of breaking at all places.Īs for Sun/Oracle vs openJDK: One has to keep this in mind: The language itself and its sepcification were always opensource and public and anyone could implement their own VM - in fact, Microsoft did it, IBM still does it today, and there were a couple of others over the decades. So, a lot has changed between those two versions.Īs for "anything newer than Java8": Project Jigsaw in fact did broke a lot of stuff, but I honestly don't know for how long its JSR was already around to it got finally implemented. Aside from what Les Morgan already stated, Oracle took over some time between Java6 and Java7 - I remember that Java6 was still from Sun and even the very first early access version for Java7 came from Oracle.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |