And before I forget, a warning: JEP-403 has made it impossible to use --illegal-access. Java 9 introduced the flag with default value warn; Java 16 changed the default to deny, and now Java 17 ignores it. In some future version it will be dropped completely.
The Oracle JDK 17 uses the new Oracle No Fee Terms and Conditions license (NFTC).
The OpenJDK 17 still uses the GNU General Public License version 2, with Classpath Exception (GPLv2+CPE).
I haven't read through the NFTC yet, but it appears that you can use the Oracle JDK 17 for free for commercial purposes until a year after the next LTS version is released. After that, you basically have to pay big bucks to keep using it. Also, I believe the Oracle JDK contains some proprietary tools and libraries that are not open source.
If you're planning on using Java in a high availability production environment, and you also intend to update Java as soon as the next LTS version is released, I suppose it makes sense to use the Oracle JDK version.
If you're only using Java for personal projects, or if you plan to keep using Java 17 after its end-of-life and don't want to pay Oracle a lot of money, just keep using OpenJDK.
Jesse Silverman wrote:or how it might ever possibly be enforced