I see a lot of posts lamenting about how Java is now being paid for. I feel a lot of people are getting it wrong...and right.
Perhaps when you started coding in Java, you were asked to download the JDK (Java development kit). By default what you went for was the Oracle JDK. Oracle isn't the only provider though they are the most popular, so when they make a move everyone feels it.
Oracle JDK now has a feature release every six months, this new versioning scheme which was previously announced in 2017. Previously that took about 3+ years. For example, look at how long it took for Lambdas to get to Java in Java 8. So the six months feature release is good news!
Oracle JDK is free for use in development and test environments but would be paid for in commercial settings.
In other words, updates will generally be provided for 6 months before they are stopped upon release of the next version. If updates/support are required for a longer duration, or for production use, then it must be purchased from Oracle.
Now it actually makes sense for Oracle to charge if they are going to be moving at such a rate, there are hard working developers that are behind this and not robots.
Moreover, it isn't a new thing for companies to charge fees for enterprise support.
Now if you are a developer just learning Java, this does not affect you any way because you probably are using Oracle JDK in development and test environments.
Now, what if you intend to use it commercially what should you do?
You have some options, but I'd list a few-
-$2.5 (USD) per month per user (desktop) or Less
-$25 (USD) per month per processor (Server) or Less
With Significant discount for large deployment support requirement, for example, 50% discount for 10k-20k processor units.
Oracle contributes heavily to OpenJDK, and it is the basis for both Oracle OpenJDK builds and Oracle JDK. OpenJDK is free and opensource. In fact, as of Java 11, OpenJDK has feature parity with Oracle's JDK. In other words, you shouldn't see Oracle JDK as "better" than the OpenJDK build. That's great news, isn't it!
You certainly do not "need" to go with a paid support option.
Though if you're in a large organisation that needs a fix in a timely manner, someone to respond to your user requests, or if you want the reassurance that the binary you use is being backed by a vendor, then you could go for the commercial support.
It's worth thinking though about how you, the end users, can support the Java SE ecosystem to ensure it has a long lasting future!
I have given the overview of this situation, there are more detailed articles and documents you could go and check out if you are still interested in understanding what it entails in more detail.
In our world where we have a lot of wonderful languages with wonderful features, Java needed to speed up its releases and add new features faster. Hence Oracle has decided to invest in moving Java forward.
Here are some good articles I highly recommend you to go check out if you are interested in learning more: