Sun宣布使用GPL v2开放Java,新一轮平台大战即将到来

Sun公司宣布采用GPLV2许可证开源JavaSE和JavaME的源代码, 不包括Java语言、规范及TCKs。此举使Java融入F/OSS社区, 并允许Linux发行版直接包含Java代码。

本刊特约记者:叶亮 

《程序员》杂志,2006年11月14日快讯。昨天,也就是太平洋标准时间2006年11月13日,Sun正式宣布使用GPLV2许可证开放Java SE和Java ME源代码。

公告宣称,此次开源内容包括Sun的Java SE和Java ME实现;但不包括Java语言、Java规范和TCKs。随公告还发布了Sun计划的Java开源时间表。按照该时间表,Sun会在13日宣布Java开源适用的许可证,并且发布第一个Java SE代码发布版和可构建的Java ME代码发布版,同时宣布对应开源社区的成立;紧接着在12月,Java SE 6 GA版发布;在明年4月,发布可构建的JDK。

之前被反复猜测的许可证问题,终于定在了GPLV2,而不是用在OpenSolaris上的CDDL。经典GPLV2许可证的特殊在于,首先,假如你创建的程序中使用了任何采用GPL许可证的代码,那么你的程序必须也遵循GPL协议;第二,不能向使用GPL程序的用户收费。毫无疑问,Java采用GPL打击了相当一部分厂商,但同时会获得F/OSS(免费与自由软件社区)相当的好感。最显著的一点改变就是,现在在任何Linux发布版中都可以包含Java代码了,而在此之前,只有采用GPL的perl/python才可以。

Sun还强调了一个例外,即Classpath。我们知道开源社区中有很多Java SE的实现,如GNU/Classpath,和Kaffe VM;现在Sun的Java SE全部采用GPL,除了这个例外:你可以发布使用开源JRE的Java程序,却不用GPL你的代码——这和LGPL十分类似——可以说Sun的开源方式已经和FSF十分接近。

我们再来看看开源的具体内容。先看Java SE方面。Sun宣布在第一次的代码发布中,开源的组件包括:javac编译器、虚拟机、字节码编译器、垃圾回收、线程和安全部分。第一个代码发布版来自于JDK7的最初构建。它基本上就是JDK6的最终发布版代码。2007年春天将发布的包括,JDK6和JDK7的所有非保留模块的源代码和完整的构建脚本,保留不开源的模块将会以二进制包的形式发行。所以,真正的革新发生在JDK7。有小部分的源代码将保留不开源,它们基本上都在Java 2D部分,包括ICC色彩管理库以及字体、图形rasterizer。

Java ME方面的开源也很彻底。11月,开源基于CLDC的主要手机实现和ME基础框架;十二月底,高级操作系统手机实现,包括基于CDC/FP/PBP的设备、手持设备、机顶盒和Blu-ray设备。明年二月,Java设备测试框架开源。部分牵涉到合作厂商的部分,Sun承诺会和J2SE一样,尽量沟通协调,促进尽快开源。

然而,Sun对Java的所有基础这样开源,并非表示Sun要完全放任Java。Sun在公报中强调,JCP的角色没有变,流程也没有变。Sun的目标是给社区提供更多的选择。选择Sun提供的商业发行版Java SE和Java ME,用户将以较少定制化的代价换取高效、稳定、安全、完整的支持和更新;用户也可以选择开源的代码DIY,那样你能最大的程度定制化Java,但必须为此花费人工,并且要自己克服低质量和低效率。

Sun表示,开源版本的Java SE和ME将分别在Java.net上以OpenJDK和MobileAndEmbedded社区形式存在。Sun计划利用新的技术(如将会用Mercurial代码管理工具作为新社区的基础)加上完备贡献管理协定,构建出一套全新的、完备的Java开源社区。并且将在适当时候,GlashFish和Java EE的许可证也将改为GPL。另外需要说明的是,仍然只有Sun才有权使用Java相关的商标,但Sun给通过TCK的Java程序提供专门的Logo。

注:本文部分内容来自即将发行的《程序员》2006年12期杂志。

08-08
GNU General Public License version 2 (GPL v2) 是一个广泛使用的开源软件许可协议,旨在确保用户拥有运行、研究、修改和重新分发软件的自由。以下是关于 GPL v2 的一些关键信息: ### GPL v2 内容概述 1. **许可范围**:GPL v2 允许用户自由地使用、复制、修改和分发软件,前提是所有分发的副本都必须附带完整的源代码,并且必须遵守 GPL v2 的条款[^2]。 2. **修改与分发**:如果用户对软件进行了修改并希望分发修改后的版本,则必须将这些修改公开,并且修改后的软件也必须以 GPL v2 许可证发布。这样可以确保所有后续用户都能获得相同的权利。 3. **专利授权**:GPL v2 包含一项隐含的专利授权条款,即如果某人分发了受 GPL v2 许可的软件,那么他们自动授予接收者使用该软件所必需的任何专利权。 4. **无担保**:GPL v2 明确声明,软件是“按原样”提供的,没有任何形式的明示或暗示的担保,包括但不限于适销性、特定用途适用性和非侵权的担保。 5. **终止条款**:如果用户违反了 GPL v2 的任何条款,他们的权利将自动终止,除非版权所有者明确恢复其权利。 ### 合规性 为了确保合规性,开发者和组织需要仔细遵循 GPL v2 的规定。这包括但不限于: - 在分发软件时提供完整的源代码。 - 不得对软件施加额外的限制,例如要求付费才能获取源代码。 - 如果软件被修改并在网络服务中使用GPL v2 并不要求公开这些修改,但某些情况下可能需要考虑其他许可协议(如 GNU Affero General Public License)。 ### 使用限制 尽管 GPL v2 鼓励自由共享和修改软件,但也存在一些使用上的限制: - **商业用途**:虽然可以在商业产品中使用 GPL v2 软件,但如果分发该产品,则必须提供源代码,并且不能对修改后的版本施加更严格的限制。 - **闭源软件集成**:GPL v2 软件不能与闭源软件混合使用,除非整个组合也遵循 GPL v2 的条款。 ### 示例代码 以下是一个简单的 Python 脚本示例,用于检查文件是否包含 GPL v2 许可证声明: ```python def check_gpl_v2_license(file_path): with open(file_path, 'r') as file: content = file.read() if "GNU General Public License version 2" in content: print("该文件包含 GPL v2 许可证声明。") else: print("该文件不包含 GPL v2 许可证声明。") # 示例调用 check_gpl_v2_license('example.py') ``` ###
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值