我可以将哪个免费版本的Java用于生产环境和/或商业用途?

w1e3prcc  于 2023-01-24  发布在  Java
关注(0)|答案(5)|浏览(207)

当我在码头化项目在我目前的工作,我得到了这个疑问:我可以使用哪种Java?
这种怀疑是由于:

所以经过一番研究,我得出了这样的结论:

  • 2019年4月16日8u221的Java 8更新以来,(Java 8、9、10、11和13)的所有版本和更新均免费用于个人使用和开发目的。任何其他用途,均需要商业许可证
  • 7之前的旧版本,没有也不会有任何更新。如果旧系统支持需要更新这些版本,也许销售联系人可以提供解决方案。
  • 如果我想将Java 8 oracle版本用于商业用途免费,我需要使用之前版本的2019年4月16日8u221更新

问题

根据我的结论:

  • 如果我的开发严格需要JDK 8或使用JDK 8开发,我是否可以仅将Oracle Java SE 8 JDK 8u202 and earlier versions用于免费商业用途,接受问题和安全问题?
  • 如果我可以改变我的开发我仍然希望免费我希望有改进和安全更新,我必须使用这些java open implementations之一?

参考文献

5rgfhyps

5rgfhyps1#

更新2021年9月

在我第一阅读时,这个新的许可证似乎使生产使用免费(沿着开发、测试和培训使用),除了捆绑Oracle JDK产品的付费产品。但我不是律师,所以请您自己阅读条款,并根据需要咨询法律的建议。
请记住,许多其他供应商继续提供Java规范的实现,如下面的流程图所示。其中一些供应商出售支持计划,或者是可选的,或者是作为使用其产品的一项要求。永远不要想当然,总是阅读您获得的任何分发版的详细要求。
2021年又一更新:将Microsoft添加到下面的供应商列表中。

多家供应商提供了Java实现选项

Answer by Speakjava是正确的和信息。
此外,我还制作了一个流程图,用于指导您选择Java实现的供应商。

或者换一种方式来看:你的特殊动机或情况。

ha5z0ras

ha5z0ras2#

在JDK 9发布的同时,Oracle对Java平台的开发、分发和更新方式进行了大量重大更改。
回答您问题的关键事实如下:

  1. Oracle使用的是Oracle二进制代码许可证(OBCL)for Java。该许可证有使用领域限制(嵌入式使用需要商业许可证),但允许免费使用Oracle JDK进行一般用途的开发和部署。
    1.从JDK 11开始,许可证更改为Oracle技术网络许可协议(OTNLA),要求您购买Java SE订阅以用于商业生产。自4月起,此许可证也适用于JDK 8的更新(更新211/212)。
    1.从JDK 11开始,Oracle消除了Oracle JDK与纯粹从OpenJDK源代码构建的二进制文件之间的所有功能差异。Oracle JDK 11中不再重要的东西是浏览器插件、Java Web Start和JavaFX。
    1.您可以继续在生产环境中使用JDK 7(及更早版本)的任何Oracle公共二进制文件,而无需订阅Java SE,因为许可证仍然是OBCL(尚未进行追溯性更改)。您还可以如您所说,免费使用JDK 8更新OBCL下的202。
    1.有几个选项可以继续使用JDK 8并提供免费更新,阿苏尔的Zulu Community就是其中之一这是一个免费的、经过TCK测试的二进制文件,具有一些附加的后端口特性(TLS 1.3和Java飞行记录器)。由于这通过了TCK,所以从功能的Angular 来看,它与Oracle JDK相同。除非您使用的是Applet或Web Start,否则您的应用程序将以与Oracle JDK相同的方式工作。
    1.如果您想迁移到JDK 11(当前的长期支持版本,由Oracle定义,但随后是所有其他JDK提供程序),则需要选择一个免费发行版(如Zulu Community)。
    强烈建议确保您的JDK是最新的,并且包含所有相关的安全修补程序。继续使用旧版本可能会使您面临严重的安全漏洞。
wsewodh2

wsewodh23#

总结

如果您需要在生产服务器中免费使用java,您有两种选择

    • 开放Jdk排名第一**

OpenJDK是Java SE规范的开源参考实现,但它只是源代码https://github.com/openjdk

    • 二进制**发行版由不同的供应商提供,适用于许多受支持的平台。

其中之一是https://jdk.java.net/java-se-ri/19,由Oracle维护:
来源:https://whichjdk.com

OTN与BCL的许可证数量
Oracle JDK 8(又名1.8)不再使用BCL(二进制代码许可证),从2019年4月16日起,Oracle JDK 8使用OTN(Oracle技术网)许可证,需要创建Oracle账户才能下载JDK 8并支付!!

    • BCL = Oracle二进制代码许可证**
  • 您可以使用它,但不能修改它
  • 你同意如果出了什么问题不起诉甲骨文
  • 您可以重新分发/发布它(以便您可以销售嵌入Java的产品),但如果您这样做,您同意赔偿Oracle;所以如果有人起诉你你不能把甲骨文扯进来。

它实际上只是为了保护甲骨文的知识产权,并在发现漏洞时保护他们不被起诉。
来源:https://www.quora.com/In-short-what-does-the-Oracle-Binary-Code-License-Agreement-for-Java-SE-actually-say-or-prohibit/answer/Jon-Harley
总结如下:不承担风险,不存在Oracle的任何过错

    • OTN = Oracle技术网络许可证**

总结如下:与BCL和FREE相反,仅在笔记本电脑上开发。对于企业,必须PAY

OpenJDK和Oracle JDK

OpenJDK和Oracle JDK目前都仅由Oracle创建和维护。
OpenJDK和Oracle JDK是通过了TCK(Java技术认证工具包)的相同Java规范的实现。
大多数JDK供应商都是在OpenJDK的基础上编写的,他们在不破坏TCK兼容性的情况下对组件进行了一些调整[主要是替换许可的专有部分/替换为只在特定操作系统上工作的更高性能的项目]。
来源:Differences between Oracle JDK and OpenJDK

免费官方选项

在这里我将列出并保持更新的官方链接,准备下载最常用的java版本

打开jdk 19

打开jdk 17

打开jdk 11

apt-get update
apt-get install openjdk-11-jdk

Oracle Java 8更新202

只有Java SE 8 JDK8u202和早期版本可免费用于开发和生产部署。您可以从以下网址下载:

Openjdk 8(已弃用)

您可以从here下载最新的v8版本。最新版本:

按照this使用curl下载

    • 安装模式**
apt-get install openjdk-8-jre (just run apps)
apt-get install openjdk-8-jdk (develop and run)

https://openjdk.java.net/install/开始

Oracle Java 1.4、5、6和7(已弃用)

Oracle不显示任何与Java 1.4、5、6和7下载许可证更改相关的消息。因此,我们可以将它们用于开发和生产部署,接受问题和安全问题,因为这些版本太古老了!!

7之前的遗留版本,没有也不会有任何更新。如果您有一个遗留系统运行在这个java旧版本上,也许销售联系可以是一个解决方案。

不受可信第三方影响

祖鲁语社区(Java 6、7、8、11、13、14、15)

亚马逊科雷托(Java 11)

Eclipse开放式J9

更多第三方

以下实现(按字母顺序列出)是开源的,可以免费使用:

  • 采用OpenJDK
  • 阿苏尔祖鲁语
  • 背面2刷
  • 卡卡奥
  • 代号一
  • 多普勒JVM
  • GraalVM CE
  • 俳句VM
  • 热点
  • 哈米加
  • 干扰VM
  • Jelatine虚拟机
  • Jikes RVM(Jikes研究虚拟机)
  • JVM.go
  • 莱霍斯
  • 玛克辛
  • 多操作系统引擎
  • 绳索虚拟机
  • uJVM

非免费选项

您应该为这些版本付费,但作为回报,您将拥有Oracle或其他第三方支持的许多功能

Oracle Java语言

https://www.oracle.com/java/technologies/downloads/

  • java 19
  • https://www.oracle.com/java/technologies/downloads/#java19
  • java 17
  • https://www.oracle.com/java/technologies/downloads/#java17
  • java 11
  • https://www.oracle.com/java/technologies/downloads/#java11

Oracle Java 8更新221

2019年4月16日8u221的java 8更新以来,(java 8,9,10,11,14)的所有版本和更新都是免费的用于个人使用和开发目的。任何其他用途,需要商业许可证

来源:https://www.baeldung.com/oracle-jdk-vs-openjdk

专有实现

还有其他私人或商业实施:

  • Azul Zing虚拟机
  • 中欧和东欧
  • 怡东喷射机(Discontinued
  • GraalVM EE
  • 英瑟斯公司
  • 牙买加a VM(aicas)
  • 混合(Aplix)
  • MicroJvm(IS2T-工业智能软件技术)
  • 开放虚拟机
  • PTC百分比
  • SAP虚拟机
  • 用于Java的Waratek CloudVM

来源:https://www.baeldung.com/oracle-jdk-vs-openjdk

注解

更多参考资料

wgmfuz8q

wgmfuz8q4#

    • 从JDK 17开始(2021年9月)**

Oracle JDK 17及更高版本在free-to-use license下提供,有效期至后续LTS版本发布后一年。此后,Oracle JDK将使用OTN许可证。
下面是一个相关的FAQs页面,其中解释了更多内容,但下面是从该页面中提取的摘要:

  • Oracle OpenJDK发行版遵循GNU GPL v2,带有类路径例外(允许免费生产使用)。
  • Oracle JDK 17及更高版本在Oracle No-Fee Terms and Conditions License下提供,允许所有用户免费使用。
  • 以前的Oracle JDK发行版仍属于OTN License Agreement for Java SE
  • "Oracle将对JDK 17和更高版本使用NTFC。LTS版本(如JDK 17)将在后续LTS发布后一年内根据此许可证接收更新。免费使用许可证有效期过后,Oracle打算使用OTN License,与当前用于Java 8和11 LTS版本的OTN License相同,。非LTS版本(如JDK 18)将在NFTC下的整个计划六个月支持周期内可用。"*

资料来源:
https://blogs.oracle.com/java/post/free-java-license
https://www.oracle.com/uk/java/technologies/javase/jdk-faqs.html

ars1skjm

ars1skjm5#

现在,你可以使用JDK/Java 17,在JDK/java7下载页面(https://www.oracle.com/java/technologies/downloads/),你可以得到这个评论:
Java 17 LTS是Java SE平台的最新长期支持版本。JDK 17二进制文件可在Oracle免费条款和条件许可证下免费用于生产和重新分发
JDK 17将根据这些条款接收更新,至少到2024年9月。

相关问题