What is manong feisheng-02-oracle JDK? How to choose the version of Oracle JDK?

HeavenZhi 2021-05-04 14:11:39
manong feisheng-02-oracle feisheng oracle jdk



Last one Java What is it? ? We have learned about Java The concept of , And what is JDK and JDK And JRE What does it matter , This time, let's take a look at OracleJDK.

1.Oracle JDK What is it? ?

We know ,JDK yes Java Development Kit Abbreviation , Which translates as Java Development kit .

Oracle JDK Derived from Sun JDK(2009 year Oracle Acquisition Sun),Oracle JDK Nature is Oracle Produced by the company JDK. therefore Oracle JDK Namely Oracle The company develops and maintains Java Development kit .
But it is too one-sided to understand it in this way .

according to Java Platform Group Senior director of product management Donald Smith stay " Oracle JDK Releases for Java 11 and Later " Description in :

01(Oracle JDK Releases for Java 11 and Later)

Because my English is so bad that it's disgusting , In order to avoid wasting time and unnecessary translation mistakes , Here is a simple reference to the results of Google translation to facilitate a rough understanding :

Ideally , We will arrange all the Oracle JDK builds Simply called GPL Or under a commercial license "Oracle JDK", however , For historical reasons , Despite the small differences , But we will be in Oracle's OpenJDK builds and Oracle JDK They are quoted separately in .

According to the above , We can know Oracle JDK builds It actually includes a Open source version of Oracle's OpenJDK builds( be based on GPL Open source ) and Commercial version Oracle JDK builds, But because of its cumbersome writing and little effect on Development , They are generally referred to as Open JDK and Oracle JDK.( Scribble the killing series , This is a pit in the next chapter )

So it can be seen that ,Oracle JDK There are actually several meanings :
1. from Oracle The company's commercial JDK ( The most commonly used )
2. from Oracle company-launched JDK (Oracle JDK builds All of them JDK)
3.Oracle JDK builds

In most cases Oracle JDK refer to Oracle company-launched Business Edition JDK.

2.Oracle JDK How to choose the version ?

Speaking of Oracle JDK How to choose , It has to be mentioned Oracle JDK Many versions have been released .

If you are interested, you can go Java development history have a look Oracle JDK What are the versions .

So far :2021 year 5 month 4 Japan ,Oracle JDK Altogether 17 Big version . In many versions, how to choose the appropriate version to use , It has become a headache . To know which version is right for you , You have to understand Java SE The pace of release and the gap between each version .

1.Java SE The pace of release and the gap between different versions

1.Java SE 8 As well as the release rhythm of previous versions and the gap between different versions

according to Java CPU and PSU Releases Explained The description inside :

02(Java CPU and PSU Releases Explained)

1. Different versions of the release

CPU (Critical Patch Updates): Critical patch updates (CPU) Contains fixes for security vulnerabilities and critical errors .Oracle It is strongly recommended that all Java SE Users upgrade to the latest CPU edition .Java SE CPU The version is odd ( namely 7u71、7u65– Please refer to here about Java SE Version numbering scheme For more information ).

PSU (Patch Set Updates): Patch set update (PSU) Include the corresponding CPU All the fixes in , And other non critical fixes . Only if you are affected by one of the other bugs fixed in this release , Should be used Java PSU edition .Java SE PSU The version is even , Version Description Listed in Java SE PSU Other fixes available in the distribution .

PS:
Oracle It is strongly recommended that all Java SE Users upgrade to the latest version of a series CPU edition . Most users should choose CPU edition .

If the user is Version Description The impact of one of the other bugs fixed in this release described in , Only the corresponding PSU edition .

And then CPU The version will contain the current PSU All the fixes for . therefore , The organization should test the current PSU , It is expected that these fixes will be included in the next CPU in .

from 2014 year 10 Month begins , With Java SE 7u71(CPU) and Java SE 7u72(PSU) Release ,Oracle Plan in Java SE 7 Each CPU At the same time as the release , An additional corresponding PSU edition .

2. Release cycle

Java Every two years , until Java 6 On 2006 year 12 month 23 in Sun Until next release . Because of the political impasse , The next version is 2011 year 7 month 28 Yesterday's Java 7.

stay 2012 year 3 month 7 Held in London on May QCon 2012 At the conference , front Sun Microsystems person in charge 、 The current Oracle Java The product manager Simon Ritter promise Java It's going back to the two-year release cycle .

But in 2013 year 4 month 18 When the day ,Oracle company Java Platform Group chief architect Mark Reinhold Express in blog :Oracle It is planned that Java 8 The release of the plan is postponed until next year , The reason is to fix Java Security vulnerability .

3. Version relationship

Update within version : for example :Java 8 > Java 8u20 > Java 8u40, Most of them are the repair of some security vulnerabilities and small function updates , The difference between versions is small ( In addition to security vulnerabilities ).

Update between versions : for example :Java 6 > Java 7> Java 8, There is a big change 、 Update and security vulnerability fix , Just like the traditional version , Every change in numbers is a huge reform , There's a huge gap between versions .

2.Java SE 9 And the release rhythm of later versions and the gap between different versions

according to Java Platform Group Senior director of product management Donald Smith stay " Update and FAQ on the Java SE Release Cadence " And Oracle Java SE Support Roadmap Description of , Extract what we need : from Java SE 9 Start Java Opened a new version control and release rhythm model .

03(Oracle Java SE Support Roadmap)

1. Different versions of the release

LTS edition (Long Term Support, Long term support version ), Provide at least eight years of business support ( It may be extended according to the needs of the market ), It will be replaced by a new LTS Version replaces .

non-LTS edition (non Long Term Support, Not a long-term supported version ), Six months of business support , When it's due, it's replaced by a new release .

2. Release cycle

The overall release cycle is every six months , among :

LTS edition : Every three years

non-LTS edition : Every six months

PS:
When the two publishing times conflict , Priority release LTS edition ,non-LTS The version is delayed by one cycle .

3. Version relationship

Update within version : for example :Java 11 > Java 11.0.1 > Java 11.0.2, Most of them are to fix some security loopholes , There is little difference between versions ( In addition to security vulnerabilities ).

Update between versions : for example :Java 9 > Java 10 >Java 11 It's closer to Java 8 > 8u20 > 8u40, Published every six months non-LTS The version is more like " Major version " Of " Feature release ",LTS Versions are more like major versions , and non-LTS The version is more like the previous one LTS Version of the test version , There's a big gap between versions .

2.Oracle JDK Do you charge for it? ?

got it Java SE After the release rhythm and the gap between different versions , The most influential factor in people's choice is the price .
That's right ,Oracle JDK It's also a charge , But not all versions are charged , Not all uses are charged .

04(Oracle Java Archive)

from Java We can see an interesting phenomenon in the historical version of ,Java SE 8 The title appears twice , Namely Java SE 8u202 And previous versions and Java SE 8u211 And later versions .

Why does this happen ?

Java SE 8u201(CPU)/8u202(PSU) And previous versions used Binary Code License
Java SE 8u211(CPU)/8u212(PSU) And later versions use Java SE OTN License

Because there is a huge difference between the two licenses , So just put Java SE 8 It's divided into two parts , According to the lengthy description of these two permits, combine RednaxelaFX stay Oracle Finally, I want to Java 's non paying users fired - What do you think ? and
use java Developing business software needs to give Oracle Do you pay ? The answers to the two questions have refined a few key points .

license Free learning Free personal use Free development Free test Free business features Free commercial use Free on the desktop / Use it on your laptop Free on the server Free embedded devices and other computing environments Free security updates
Binary Code License * *
Java SE OTN License - * * * *

PS:
Business function refers to Oracle JDK Self contained HotSpot VM Whether there is -XX:+UnlockCommercialFeatures, If there is -XX:+UnlockCommercialFeatures It means that the business function has been activated , This function is off by default , Manual opening required ( stay Java 11 Is abolished ).

Java Flight Recorder(JFR) Has joined Open JDK 11, stay Open JDK 11/bin It can be started directly under the environment , Or in HotSpot VM Add... To the startup parameters of -XX:StartFlightRecording.

use Binary Code License Of Java 8u201/8u202 And previous versions , Personal use and business use are almost free ( Without commercial features and embedded devices ).

use Java SE OTN License Of Java 8u211/8u212 And later , Free for personal use , Business requires a license Can only be ( Although it can be used secretly , But that kind of operation is like streaking through a minefield , You don't know when it's going to go up , I don't know. Oracle Will you wait until you get fatter ).

3. summary

I wrote so much , I'm almost from Java I'm on my way to pick up the bucket ( In fact, the knowledge reserve is not enough , Write and check ), There is a kind of heavy study Java The feeling of . Not much , Start to summarize :

stay JDK In fact, there is a big category of choices , That's it Open JDK builds, But that's what's going on in the next chapter .

Only consider using Oracle JDK Under the circumstances , There are only three factors to consider : commercial stability and New technology .

If you need business and don't want to give money , Then you can only choose to use Binary Code License Version of , That is to say 8u201(CPU)/8u202(PSU) And previous versions , The last free commercial version Oracle JDK Namely Java 8u201/8u202.

If you need stability, choose the latest LTS edition .

If you need to use the latest technology and have no requirement for stability , That's who's new .
If you need to use the latest technology and have stability requirements , Then choose the latest LTS edition .

If you need to use the latest technology and have stability requirements , And no money , That's all Open JDK builds I can save you , That's what the next chapter is about , In the rush to write ……

Reference material ( In no particular order )

Java development history
Donald Smith-Oracle JDK Releases for Java 11 and Later
Oracle Blogs-Donald Smith
Wikipedia -GPL
MBA Think tanks . Encyclopedias -GPL
Oracle JDK Home page
Wikipedia -Java
Wikipedia -Java Version history
Java CPU and PSU Releases Explained
CPU, PSU, SPU - Oracle Critical Patch Update Terminology Update
JDK Release Notes
Change to Java SE 7 and Java SE 6 Update Release Numbers
QCon 2012-Java won't curl up and die like Cobol, insists Oracle
Java 8 release delayed until next year
Oracle's Mark Reinhold-Java 8: Secure the train
Oracle Java SE Support Roadmap
Donald Smith-Update and FAQ on the Java SE Release Cadence
Oracle-Oracle Java SE Support Roadmap
Oracle-Binary Code License (Oracle Binary Code License Agreement for the Java SE Platform Products and JavaFX)
Oracle-Java SE OTN License (Oracle Technology Network License Agreement for Oracle Java SE)
Oracle-Oracle Java SE Licensing FAQ
RednaxelaFX-Oracle Finally, I want to Java 's non paying users fired - What do you think ?
RednaxelaFX- use java Developing business software needs to give Oracle Do you pay ?
Oracle-Oracle Java SE and Oracle Java Embedded Products

版权声明
本文为[HeavenZhi]所创,转载请带上原文链接,感谢
https://javamana.com/2021/05/20210504140924956k.html

  1. ASP调用SDK微信分享好友、朋友圈
  2. ASP calls SDK wechat to share friends and circle of friends
  3. SpringCloud(六)Bus消息总线
  4. 详解JavaScript中的正则表达式
  5. Springcloud (6) bus message bus
  6. Explain regular expressions in JavaScript
  7. Java 响应式关系数据库连接了解一下
  8. Java14它真的来了, 真是尾气都吃不到了
  9. 视频:使用Docker搭建RabbitMQ环境
  10. Java responsive relational database connection
  11. Java14 it's really coming. I can't eat the exhaust
  12. Video: building rabbitmq environment with docker
  13. SpringCloud(六)Bus消息总线
  14. 详解JavaScript中的正则表达式
  15. Springcloud (6) bus message bus
  16. Explain regular expressions in JavaScript
  17. Docker实战:用docker-compose搭建Laravel开发环境
  18. Docker: building laravel development environment with docker compose
  19. 求助,JAVA如何获取系统当前所有进程
  20. 有人用过JMeter或用HttpUnit写过测试吗????
  21. Help, Java how to get all the current processes of the system
  22. Has anyone ever used JMeter or written tests in httpUnit????
  23. Living in a mountain village in late spring
  24. Partridge day, spring of HKUST
  25. JavaScript异步编程4——Promise错误处理
  26. 海康摄像SDK开发笔记(一):海康威视网络摄像头SDK介绍与模块功能
  27. JavaScript asynchronous programming 4 -- promise error handling
  28. Haikang video SDK development notes (1): introduction and module functions of Hikvision webcam SDK
  29. JOP:用于FPGA的嵌入式实时系统中的Java优化处理器内核
  30. Spring Boot源码:使用MongoDB MongoTemplate公开REST在几分钟内实现CRUD功能
  31. Spring Boot应用程序事件教程 - reflectoring
  32. 带有Resilience4j断路器的Spring云网关 - rome
  33. 经验分享:Apache Kafka的缺点与陷阱 - Emil Koutanov
  34. 通过Spring Boot Webflux实现Reactor Kafka
  35. 从Java 8升级到Java 11应该注意的问题
  36. Jop: Java optimized processor core for FPGA embedded real time system
  37. Spring boot source code: use mongodb mongotemplate to open rest to realize crud function in a few minutes
  38. Spring boot application event tutorial - reflecting
  39. Spring cloud gateway with resilience4j circuit breaker - ROM
  40. Experience sharing: shortcomings and pitfalls of Apache Kafka - Emil koutanov
  41. Realization of reactor Kafka through spring boot Webflux
  42. RPC框架设计----Socket与I/0模型
  43. Problems in upgrading from Java 8 to Java 11
  44. RPC framework design -- socket and I / 0 model
  45. RPC框架设计----I/0模型
  46. RPC framework design: I / 0 model
  47. RPC框架设计----NIO编程缓冲区Buffer
  48. RPC框架设计----NIO编程缓冲区Buffer
  49. RPC framework design -- NiO programming buffer
  50. RPC framework design -- NiO programming buffer
  51. Java多线程基础
  52. Java multithreading Foundation
  53. 码农飞升记-00-Java发展历程
  54. Development history of coder-00-java
  55. 码农飞升记-00-Java发展历程
  56. Development history of coder-00-java
  57. Spring and Autumn Moon
  58. Node.js与Spring Boot比较? - Ryan Gleason
  59. Spring WebFlux的明显陷阱 - ŁukaszKyć
  60. Spring创始人Rod大叔对YAML的真实想法