`
wuqun94615
  • 浏览: 16619 次
  • 性别: Icon_minigender_1
  • 来自: 南昌
社区版块
存档分类
最新评论

java开源项目研究之许可协议介绍

阅读更多
如果你只是想学习使用一下开源项目,那么你可以跳过本节(了解一下更好^_^),但是如果你想在自己的产品(不管是开源的还是商业的)中集成开源项目,那么你必须了解许可协议。
   开源项目的License可以分为三大类:
   OSI-Approved Open Source:被开放源码组织(www.opensource.org)所批准的开放源码授权协议。像大家经常看到的Apache,GPL,LGPL,MIT Licence,都属于OSI-Approved的授权协议,OSI 的要求之一是二进制文件和源代码的自由发放。
   Other/Proprietary License:其他的,私有的授权协议。指软件作者提供源代码,但是对软件的分发和发布有其他的限制。
   Public Domain:公共域授权。将软件授权为公共域,表示作者完全放弃版权,任何人都可以随意使用。
   大部分开源工程都属于OSI-Approved Open Source,下面对常见的License做简单的介绍:
   对商业友好的License,这些License虽然保留版权申明,但是不但免费修改、免费重新发布,而且允许商业使用,允许商业修改后不公布修改的软件代码(拿到商用产品中就不用担心了^_^)。这些License包括:Apache License,Artistic License,BSD License,Python License,XWindows License,Zope License等。
   GPL License,允许免费修改、免费重发布,但要求修改代码必须也遵守GPL。这样非GPL License的项目就不能使用GPL License的源码。这种授权方式大大限制了从开源中牟利的手段,因此是对商业不友好的授权。GPL授权的项目特别多,包括有linux、gnome、kde、gcc等。LGPL License对比GPL较为宽松,允许商业代码链接LGPL项目的库。
   MPL License,允许免费重发布、免费修改,但要求修改后的代码版权归软件的发起者。这种授权维护了商业软件的利益,,它要求基于这种软件得修改无偿贡献版权给该软件。这样,围绕该软件得所有代码得版权都集中在发起开发人得手中。但MPL是允许修改,无偿使用得。MPL软件对链接没有要求。
   还有部分开源项目有多重协议,比如MySQL(著名的开源数据库)同时拥有Commercial License和GPL License,如果是GPL项目,那么可以免费使用MySQL,但是在商业软件中使用MySQL则要购买commercial license。
   总之,当你准备在商用项目中使用开源项目,就需要仔细阅读它的License,看是能否能够免费使用。(不能免费,估计老板就不同意了^_^)从商用的角度看,当然是选择对商业友好的License比较好,比如Apache License,BSD License,MPL,另外LGPL也是可以使用的。在我们关注的java领域,选择余地还是比较大的(在以后的内容中会见到)。
分享到:
评论

相关推荐

    Java程序员必须了解的七大开源协议

    BSD许可是一种非常宽松的开源许可协议,它允许用户自由使用、修改和分发软件,只需要保留原始版权和许可声明即可。具体来说,使用BSD许可的软件时需遵循以下几点: - 在发布修改版或衍生作品时,必须包含原始的版权...

    Java程序员需要了解的几个开源协议介绍.rar

    在编程世界中,Java程序员经常会接触到各种开源项目,这些项目的许可协议对于理解代码的使用、修改和分发有着至关重要的作用。本篇文章将详细介绍几个Java程序员必须了解的开源协议,帮助开发者更好地理解和遵循这些...

    java开源包6

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包9

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包10

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    Java程序员需要了解的几个开源协议 .txt

    GPL是最具影响力的开源协议之一,它要求任何使用、修改或分发基于GPL的软件的衍生作品都必须以GPL许可证发布,从而确保了代码的开放性和可访问性。这一特性被称为“传染性”,意味着任何与GPL软件结合的代码也必须...

    java开源包8

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    JAVA上百实例源码以及开源项目源代码

    日历表格面板 [ConfigLine.java] 控制条类 [RoundBox.java] 限定选择控件 [MonthMaker.java] 月份表算法类 [Pallet.java] 调色板,统一配色类 Java扫雷源码 Java生成自定义控件源代码 2个目标文件 Java实现HTTP连接...

    Java开源博客代码

    - `license.txt`:包含了该项目的开源许可协议,规定了其他人使用、修改和分发代码的规则,常见的如MIT、Apache 2.0等。 7. **脚本文件**: - `build.properties` 和 `build.xml` 一起工作,定义了构建过程,包括...

    开源地理信息GIS,java实现的webGIS

    标签 "开源GIS" 暗示了这个项目是遵循某种开源许可协议的,例如GPL(GNU General Public License)或MIT等,这使得软件能够被社区广泛使用和改进。"webGIS" 强调了它是Web上的GIS解决方案,而 "java" 指出了所使用的...

    Java项目开源源码.zip

    开源软件的源代码是公开的,遵循特定的开源许可协议,如MIT、Apache 2.0或GPL等。这些协议保护了开发者的权益,同时也鼓励了协作和创新。开源项目如Linux操作系统、Apache HTTP服务器、MySQL数据库和无数的Java库都...

    java开源包101

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包3

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    一个开源的播放器,JAVA写的

    其次,“开源”标签强调了项目的开放性,意味着它遵循特定的开源许可协议,比如GPL、MIT或Apache License等,这些协议规定了代码的使用、修改和分发规则。最后,“播放器”标签暗示了项目的主要功能,即播放音频和...

    java开源论坛

    通过对这些文件的理解,开发者可以深入研究jGossip的架构,学习Struts框架的应用,甚至参与到项目中,为这个java开源论坛贡献自己的一份力量。这样的实践不仅可以提升编程技能,也有助于理解开源社区的运作机制,...

    J2EE学习中一些值得研究的开源项目

    ### J2EE学习中值得研究的开源项目 在Java领域,特别是针对企业级应用开发的J2EE(Java 2 Platform, Enterprise Edition)框架中,有许多优秀的开源项目可以帮助开发者更好地理解和掌握这一技术栈的核心概念与实践...

    java开源包4

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    开源java项目:贪吃蛇

    - **LICENSE**:声明项目的开源许可协议。 这个开源项目是一个极好的实践平台,对于初学者来说,通过阅读和修改代码,能深入理解Java语言和游戏开发的结合应用。对于有一定经验的开发者,这个项目也可以作为一个...

Global site tag (gtag.js) - Google Analytics