`
sunxboy
  • 浏览: 2871347 次
  • 性别: 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开源包10

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

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

    MPL是一种弱复制许可协议,允许开发者修改和扩展源代码,同时要求如果发布基于MPL的衍生作品,则必须以MPL许可证发布修改后的代码。这种协议旨在促进开源社区内的合作与创新,同时保护原始作者的权利。使用MPL的项目...

    java开源包9

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

    java开源包8

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

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

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

    java开源包3

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

    Java开源博客代码

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

    Java语言实现文本转语音

    `LICENSE.TXT`文件可能包含了Jacob库的许可协议信息,对于使用这个库的开发者来说,理解并遵守这些条款是非常重要的,以确保合法合规地使用开源软件。 `docs`文件夹通常包含库的文档或API参考,可以帮助开发者更好...

    java开源论坛

    1. `MPL-1.1.html`:这是Mozilla Public License的版本1.1,表明jGossip遵循这个开源许可协议。MPL允许用户自由地使用、复制、修改和分发软件,同时也规定了对源代码的贡献和再发布的要求。 2. `build.xml`:这是一...

    java开源包4

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

    18个Java开源CMS系统一览.doc

    ### Java开源CMS系统知识点概述 #### 1. InfoGlue - **简介**: InfoGlue是一款采用Java语言编写的高级内容管理系统(CMS),以其高度可扩展性和稳健性著称。 - **特点**: - 完全支持多语言环境,满足国际化需求。 ...

    java开源包5

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

    java开源包101

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

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

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

    java开源包1

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

    java开源包2

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

    java开源包11

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

Global site tag (gtag.js) - Google Analytics