Soft_Job 板


LINE

良葛格写的文章 Java依旧免费? https://www.ithome.com.tw/voice/126265 Oracle JDK只能用於一般用途,不过,OpenJDK仍能允许商业使用。但是,虽然有免费、可商用的JDK建构版本,并不代表JDK的选择与维护是零成本 过去,被认为是免费的Java而言,在传出有企业遭到追讨授权费的新闻後,Java不再免费的话题,就传遍了大街小巷。 现在,Java 11都释出了,若还只是在讨论免不免费这件事,只是把问题看得太简单了! Java释出版本与频率 Java在释出的版本与频率上,过去以来,曾有几次重大变更。 若干历史在先前专栏〈想跳舞的Java〉曾经提过,就结论而言,JDK8及更早版本,安全性修补的释出会是基於5的倍数,遇偶数加一,例如8u5、8u11、8u25等,8u31,特性(feature)释出版本会是20的倍数,像是8u20、8u40、8u60等,会包含先前的安全性修补,以及不影响规格书的特性,像是JVM的效能增强或工具更新等,自Java 9开始,安全性修补版本改为每三个月释出一次,而特性版本改为每六个月释出一次,在这样的频率下,9.0.1、10.0.1中,1代表着安全修补,而9、10这开头的数字,代着特性版本,更新内容可以是包含JVM、语言、程式库等各种更新,而不是像Java 7到Java 8这样,数字代表着重大释出(major release)。 Java 9、10都是短期支援版本,在下个小版本释出之後,上个版本就不再维护,使用者要赶快更换至新版本。 不过,就企业而言,安全性的修补通常是重大考量,因而更需要留意的是长期支援版本(Long-Term-Support, LTS),例如,Java 8就是个长期支援版本,Oracle预计支援至2020年,〈Oracle Java SE Support Roadmap〉(https://goo.gl/7Civd5)指出,自Java 8之後,预计每三年释出一个LTS,最新出炉的Java 11,就是长期支援版本。 Stephen Colebourne在〈Java release chains〉(https://goo.gl/2Tex7a)建议,可以将LTS视为如同过去版本的重大释出,因而就企业而言,Java 8是个可考虑的版本(他建议至少是8u40之後的版本),接下来则是 Java 11,若是Oracle JDK11,目前预计支援至2026年。 Java不再免费? 前阵子有段时间,传言有企业接到Oracle通知,将Java运用在商业或特定用途,必须缴交授权费,因而传出许多Java不再免费的消息,甚至与Oracle控告Google的官司新闻混淆在一起。 而Oracle与Google之所以打官司,问题就在於,Oracle声称Google的Android系统抄用了Java的API,而这与Java运用在商业或特定用途必须缴交授权费,其实是不相干的两回事。 「Java不再免费」是个笼统的说法,被称为不再免费的对象,指的其实是JDK/JRE。 过去从Sun下载JDK使用,没听过被要求授权费的事情。因为,从Sun/Oracle下载的JDK(不包含JDK11),必须遵守BCL(Binary Code License )规范,而当时Sun BCL也提到,从Sun下载的JDK在用於桌面个人电脑时,是免费的(no-fee);到了後来,在Oracle BCL中则提出不同规范,要求从Oracle下载的JDK,只能用於一般用途(general purpose, general use, general computing)。 然而,到底什麽是一般用途呢?就目前我所搜集到的资讯来说,看不到有任何来源给出了清楚的界线!不过,後来在〈Oracle Java SE 8 Release Updates〉(https://goo.gl/CNqJp2)中指出,Oracle JDK8的公开更新自2019年1月之後,在没有取得商业授权下,非个人用途是不得采用的。 就LTS来说,刚释出的Oracle JDK11在〈Oracle JDK License〉(https://goo.gl/4vFoAZ)也明确写着,除了开发、测试、原型、应用程式展示外,不可将之用於任何资料处理(data processing)、商业、产品、内部企业等目的。 尽管BCL对於什麽是一般用途,一直没有定义清楚的画分界线,然而,就Oracle JDK8、Oracle JDK11等LTS版本来说,商务上的应用,确实不再是免费的! 基於OpenJDK的建构版本 若采用重要的LTS,Oracle JDK的用户必须取得商用授权,才能取得安全修补,不过,对OpenJDK来说并非如此!2006年JavaOne大会上,Sun宣告Java开放原始码,2009年4月15日正式发布OpenJDK,而OpenJDK7的授权为GPLv2 + Classpath Exception(https://goo.gl/eYsupP),基本上,这里允许商业上的使用。 举例来说,OpenJDK7当中,有许多程式码因程式码授权的冲突而必须拿掉,使得原始的OpenJDK7是不完整的,所以,Red Hat於2007年发起了IcedTea计画,致力於修补OpenJDK7,使之完备,并通过了JCK相容测试。 至於OpenJDK6,则是OpenJDK7的分支,过去Oracle JDK6结束支援时,Red Hat於2013年3月宣布,他们持有OpenJDK6领导权,而能持续对OpenJDK6臭虫与安全问题进行修补(但该公司在2016年12月已经终止OpenJDK6的支援)。 在〈Oracle JDK Releases for Java 11 and Later〉(https://goo.gl/uSV34X)提到,从Java 11开始,除了必须取得商用授权的Oracle JDK之外,Oracle也提供OpenJDK的建构版本,其中也包含了过去版本中的一些商用特性(过去几年Oracle陆续贡献给OpenJDK社群)。 因此,就功能而言,从JDK11开始,Oracle JDK及OpenJDK基本上是相同的(文中也提到了一些差异性,像是javafx等模组)。 若是使用Oracle建构的OpenJDK,未来无法从Oracle取得安全修补,不过,安全修补会回馈至OpenJDK的原始码库,而除了自行建构以便跟上修补之外,也有其他预建构好的OpenJDK版本,像是〈Time to look beyond Oracle's JDK〉(https://goo.gl/ZPgvD4)提到的AdoptOpenJDK等。 单就免费的考量来说,AdoptOpenJDK就提供了OpenJDK8到10,在Java 11正式释出後不久,也会有OpenJDK11的版本,就LTS来说,基本上,不用担心没有免费的安全修补可用。 若需要商务上的付费服务,〈Time to look beyond Oracle's JDK〉也提到,如Azul Zulu等公司,在考量与作业系统整合度时,Red Hat也提供内含OpenJDK的建构版本。 并非只是免费与否 就简单的结论来说,Java还是有免费版本的JDK,问题在於选择使用哪个JDK。然而,就算有AdoptOpenJDK等组织或公司,提供现成OpenJDK建构,但是,更多样的OpenJDK建构来源,加上六个月的释出模型,以及三年一次的LTS版本,也代表着更多必须考量的问题。 就稳定的安全修补而言,着重在三年一次的LTS是个选择,然而,不同的OpenJDK建构版本,对LTS的支援期限也不同。另外,也必须同时考量程式库要求的最低版本等问题,关於这部份,可参考〈如何面对新的Java Release Model〉(https://goo.gl/F5UoPF)。 因而就算有免费可商用的JDK建构版本,也并不代表JDK的选择与日後维护等是零成本,更积极评估与选择变得必要,我建议以上提及的文件内容,你可以详细阅读,评估时容易有个出发点,不致於单纯落入免不免费这件事上! --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.230.7.177
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1539496398.A.C89.html
1F:推 nashyuuki: 无关免费 主流的程式语言 你只能用... 10/15 08:43
2F:→ nashyuuki: kotlin要变主流 还要看Google的政策 10/15 08:48
3F:推 liddle: 文章很长,结论只要一行就是「要收钱」。 10/15 11:38
4F:→ alan3100: 阅读和逻辑很重要,不然就会一直鬼打墙. 10/15 12:46
5F:推 kojilin: 有人内文没看完? 10/15 14:43
6F:→ kojilin: 免费收费选择都有,上面的要收钱是.... 10/15 14:44
7F:推 BoXeX: 但如果GOOGLE出事是因为API抄袭 10/15 15:09
8F:→ BoXeX: 那麽OPENJDK以後到底会不会出事...... 10/15 15:09
9F:→ ssccg: 应该说结论是Oracle版要收钱 10/15 17:10
10F:→ ssccg: OpenJDK是Oracle自己的有什麽好出事的,Android SDK完全是 10/15 17:13
11F:→ ssccg: 另一套API,跟这边的JDK/JRE问题根本不相关 10/15 17:14
12F:推 ssadow: OracleJDK -> 商业用途要收费,OpenJDK -> 免费随你用 10/15 17:23
13F:→ ssadow: 跟google的官司问题跟这篇文讨论的是不同的事 10/15 17:23
14F:推 liddle: 直接讲就是用 Oracle 要收钱。用 Open 也未必能豁免法律 10/15 17:39
15F:→ liddle: 风险。Oracle 一样可能发动法律诉讼。就问自己公司能和 Go 10/15 17:39
16F:→ liddle: ogle 一样付律师费吗? 10/15 17:39
17F:→ liddle: 开放原始码与「开放授权」是两件事。开放授权与放弃诉讼权 10/15 17:41
18F:→ liddle: 利是两件事。 10/15 17:41
19F:→ ssccg: 应该是问自己公司能和Google一样付出Oracle会想告你的赔偿 10/15 17:45
20F:→ ssccg: 金额吗? 10/15 17:45
21F:→ ssccg: OpenJDK照着授权用是要能被告到什麽,除非未来改授权条款 10/15 17:50
22F:→ liddle: 选用一个有法律风险的技术,可不是对公司负责的方式。 10/15 18:04
23F:→ liddle: 另外,律师费都付不起,就不用往後讨论赔偿了。 10/15 18:05
24F:→ liddle: Google 请的律师可是全美顶尖。每小时收费数千美元。团队 10/15 18:07
25F:→ liddle: 成员也是上千美元。 10/15 18:07
26F:→ ssccg: 照这逻辑有什麽没法律风险的技术? 还是有法律风险的技术是 10/15 18:07
27F:→ ssccg: 定义成IP持有者是Oracle? 10/15 18:07
28F:推 ripple0129: 这次的Java年会反应了现状啊 10/15 18:43
29F:→ liddle: 那举个例子:譬如你使用 C# 及 .NET 就不会有法律风险。因 10/15 19:05
30F:→ liddle: 为微软已经在提为公开标准。实作也使用MIT 类的授权条款。 10/15 19:05
31F:→ liddle: 在法律上微软就算想告也没基础。 10/15 19:05
32F:推 liddle: 在提起诉讼前,你要证明某项权利是你的,才能进行下一步。 10/15 19:09
33F:→ liddle: C# 以及 .NET 是ECMA 及 ISO 标准。所以不能就此主张任和 10/15 19:09
34F:→ liddle: 权利。而C#的「实现部分」,也使用 MIT 类的权利发表。那 10/15 19:09
35F:→ liddle: 就是也不可能就此主张权利。Oracle 的 Java 授权,通通有 10/15 19:10
36F:→ liddle: 伏笔。 10/15 19:10
37F:→ alan3100: 内文都不看在底下贴一大段自打脸. 10/15 19:56
38F:推 liddle: alan3100 那一段论述有悖?还是你就是信口胡说之流? 10/15 20:07
39F:→ CaptainTeemo: OpenJDK 采用 GPLv2 协议,不会有专利问题 10/15 20:07
40F:→ alan3100: https://goo.gl/F5UoPF 懒得看也好歹挑重点看 10/15 20:11
41F:推 ssadow: 可以请问OpenJDK的伏笔在哪吗? 这边有license连结 10/15 20:12
42F:→ ssadow: https://openjdk.java.net/legal/gplv2+ce.html 10/15 20:12
43F:→ ssadow: 或是oracle在哪里有公告特别声明? 10/15 20:13
44F:→ kojilin: 就像上面说的OpenJDK 也有license 写清楚就是GPLv2+ce 10/15 21:18
45F:→ superpandal: 这我很认真的查过... openjdk主要重点还是在ce上 10/15 21:54
46F:→ superpandal: 不是所有的类都有ce... 当然几乎都有ce 10/15 21:55
47F:→ superpandal: 用错类可能有产品被gpl感染的问题 10/15 21:55
48F:→ superpandal: 如果oracle要操作也是可以的 可以再下版弄小动作 10/15 21:56
49F:→ superpandal: 但到这个时候 java就没人用了... 相信他们不会这样 10/15 21:56
50F:→ superpandal: 做死 10/15 21:56
51F:→ superpandal: 当然参照底层api是注定要被gpl感染的 10/15 22:03
52F:推 Argos: 反正还是那句老话 J开头的能不碰就不碰 lagecy没办法只好用 10/15 22:18
53F:→ Argos: 新专案就别用JAVA了吧 XD 10/15 22:18
54F:→ superpandal: 没java可用我相信有信仰的也不会跑去用.net的 XD 10/15 22:23
55F:→ superpandal: 还是挺讨厌M$ 反正有的是方法... 10/15 22:41
56F:→ kojilin: 之前看过一个文章提到非ce的类别好像是 sunec 相关的 10/16 08:54
57F:→ kojilin: 但如果有这些会进去的话,维护的不只有 oracle, 马上 10/16 08:55
58F:→ kojilin: 就会有人整理出来. Azul 本身也提过他们会检查(但不知道 10/16 08:55
59F:→ kojilin: 会不会分享出来) 10/16 08:55
60F:→ kojilin: 只是 sunec 刚看一下,native 部分是 LGPL 10/16 09:08
61F:推 cerwvk: 为何用争议性这麽大的东西? 想赌一下吗? 10/16 09:17
62F:→ alan3100: 争议点是某些信仰派不断的鬼打墙吗? 10/16 09:41
63F:推 ssadow: 这里又不是八卦版,直接清楚指出争议在哪不好吗 10/16 09:42
64F:→ ssadow: 只丢了一句这个不好就跑了实在很不工程师...... 10/16 09:42
65F:推 yfr: 良葛格不知道为什麽这篇我完全看不懂结论 10/16 10:38
66F:→ yfr: 不知道是因为oracle就这样还是我悟性不好 10/16 10:38
67F:→ superpandal: 粗略搜寻一下 大概就这样了 10/16 11:02
68F:→ superpandal: https://drive.google.com/file/d/1c2f5K_8YrjFtS_d_ 10/16 11:02
69F:→ superpandal: s2ezbXvC3q7Sb1Yy/view 10/16 11:03
70F:→ superpandal: openjdk8... 10/16 11:04
71F:→ superpandal: 大部分都test... 应该不会有机会gg 10/16 11:10
72F:→ pttworld: 这篇文的论调有点钻牛角尖了 10/16 17:59
73F:→ pttworld: 讨论Java免费与否,标的一定指的是Oracle版商业授权 10/16 18:01
74F:→ pttworld: 讨论微软视窗抓盗倒版标的也不会是个人 10/16 18:02
75F:→ pttworld: 工作一定是出社会,当然讨论商用 10/16 18:04
76F:→ kojilin: ?楼上是指?OpenJDK 在商用环境会有什麽问题? 10/16 18:35
77F:→ kojilin: 出社会没必要一定用 Oracle JDK, 你可以用 OpenJDK 10/16 18:39
78F:→ pttworld: 推文都有人在说阅读和逻辑很重要了 10/16 19:09
79F:→ pttworld: 这是在评论文中否定问Java免费想法太简单这个点 10/16 19:11
80F:推 qrtt1: 就算是 OpenJDK 也是有各家供应商出的商用打包版本的啊。 10/16 19:19
81F:→ Argos: 阅读跟逻辑是一回事 相关法律实际怎麽样又是另一回事 10/16 20:28
82F:→ Argos: 别说什麽用其它家就没风险这种话 哪一家吃相跟O社一样难看? 10/16 20:28
83F:推 oopFoo: 很讨厌MS。各种FUD。用Java根本没风险。 10/16 20:56
84F:→ superpandal: 基於openjdk的也是要gpl阿 所以肯定是open的 有没有 10/16 20:56
85F:→ superpandal: 附加协定那就是另外一回事 10/16 20:57
86F:→ superpandal: 但最重要的点是要通过认证才能称为是java 不然不能 10/16 20:57
87F:→ superpandal: 称作是java 10/16 20:57
88F:→ superpandal: 只要遵从各附件的协议就可以商用 10/16 21:00
89F:→ kojilin: 啥技术都不可能零风险拉,被告啊,停止发展,不流行.. 10/16 21:13
90F:→ kojilin: 所以真的讨厌Oracle那就没法吧,毕竟他也是OpenJDK最大 10/16 21:14
91F:→ kojilin: 贡献者。 10/16 21:14
92F:推 becca945: C#和JAVA工程师则互相鄙视 10/17 00:02







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BabyMother 或 站内搜寻

TOP