上海基诺彩票中奖号码

English [en]   Deutsch [de]   fran?ais [fr]   日本語 [ja]   polski [pl]   português do Brasil [pt-br]   русский [ru]   簡體中文 [zh-cn]  

Free Software Free Society

Together we have the opportunity to empower the world through the use of free software. The only way to counter proprietary software companies and the billions of dollars they use to strip user rights is through the power of your voice and your generosity. Read more.

163 Joined
600 New Members

這是針對英文原版頁面的中文翻譯。

LGPL 和 Java

David Turner

本文撰寫于 2004 年 11 月,當時 LGPLv2.1 是最新的許可證版本。隨后,LGPLv3 發布。本文的主要觀點對 LGPLv3 來說也是正確的,但是其中一些細節,諸如章節號等,有些變化。

FSF 一直以來的立場都是如果把應用和庫動態的連接到一起,就構成了一個由庫代碼和應用代碼共同創建的單一衍生作品。GPL 許可證要求所有衍生作品都要作為一個整體遵循 GPL 的條款,這個效果可以用 “遺傳” 一詞來描述。因此,如果一個應用連接到一個按照 GPL 發布的庫,那么該應用也必須按照 GPL 授權。反之,按照 GNU 寬通用公共許可證(LGPL)授權的庫可以被專有的應用連接。

在 2003 年 7 月,Slashdot 發表了一篇文章,聲稱我說 LGPL 對 Java 而言不是按照預想的方式執行的。該文章基于一篇對發給 [email protected] 的問題回復的錯誤理解之上,而且對 Slashdot 文章的多次澄清努力都未能奏效。此后,我收到了關于此文的眾多疑問,有發到 [email protected] 的,也有發到我的私人郵箱的。

FSF 的立場始終如一:LGPL 對所有已知編程語言都一樣,包括 Java。連接 LGPL 庫的應用不一定要按照 LGPL 授權。該應用只需遵循 LGPL 第 6 節中的要求:允許新的庫版本連接到該應用;并且允許使用反向工程的方法來調試。

Java 程序的典型配置是應用用到的每個庫都以一個獨立的 JAR(Java Archive)文件來分發。應用使用 Java 的 “import” 機制來訪問庫中的類。當應用編譯之后,系統根據庫的簽名來創建鏈接。那么應用一般來說就是庫的一個衍生作品。因此,庫的版權所有者必須授權該作品的發布。LGPL 允許這樣的發布。

如果你發布的 Java 應用要導入 LGPL 庫,那么它很容易符合 LGPL 許可證的要求。你應用的許可證需要允許用戶修改該庫,并且允許通過對你的代碼進行反向工程來調試這些修改。這并不意味著你需要提供源代碼或你應用的內部詳解。你不必擔心這些——修改庫的人負責讓這一切能夠正常工作。

當你和應用一起發布庫(或者單獨發布庫)時,你需要包含庫的源代碼。但是如果你的應用需要用戶自己去獲取庫,那么你就不需要提供庫的源代碼。

從 LGPL 的角度來看,Java 和 C 的區別只在于 Java 是一種面向對象的語言,它支持繼承。LGPL 對繼承并沒有特殊的要求,因為沒有必要。繼承創造衍生作品的方式和傳統連接是一樣的,并且 LGPL 允許此類衍生作品的方式和常規函數調用也是一樣的。

最頂

[FSF 標志]“自由軟件基金會(FSF)是一個非盈利組織。我們的使命是在全球范圍內促進計算機用戶的自由。我們捍衛所有軟件用戶的權利。”

加入 購物

上海基诺彩票中奖号码 琼涯海南麻将官方版 单机麻将游戏 一码中特公式规律百期中几期 彩票投注客户端下载 河北麻将诀窍 香港来料蛇报 pc蛋蛋官网 财神爷一肖特码 福彩双色球基本走势图带连线 广东快乐十分稳赚计划 高端pc28预测 贵州福彩快三开奖结果 二八杠纯手法牌技 东北麻将技巧详解 斗地主残局大全图片 广东麻将最基本打法