Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >[L]GPL在Java/C#代码中的应用

[L]GPL在Java/C#代码中的应用
EN

Stack Overflow用户
提问于 2008-12-29 10:32:22
回答 4查看 2.9K关注 0票数 2

如何将LGPL许可应用于Java和C#代码?我知道,当Sun JDK成为GPL时,他们为标准库做了特殊的例外。

所以,如果我不能打开我的应用程序源,并且仍然想要分发它.

  • ..。我可以使用GPL‘’ed库(通过导入‘对其类进行导入)吗?
  • ..。我可以用LGPL‘’ed的吗?
  • ..。我的应用程序能在GPL‘’ed应用服务器(使用其服务和API)之上运行吗?

在上述所有问题中,GPL = GPL v.2。

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2008-12-29 11:10:31

首先,如果你是在别人的工作之上构建商业软件,你应该聘请一位律师来帮助你确保你始终遵守版权持有人的许可和你的特定用途。

话虽如此,我的建议是:

  1. 您不应该链接到GPL应用程序或库,除非您希望将代码作为GPL分发。
  2. 就LGPL而言,您可能想要向版权持有人查询,但是自由软件基金会已经澄清了它对LGPL关于Java:LGPL和Java ( David Turner )的解释。
  3. 如果要扩展GPL框架(如应用服务器),则需要遵循该框架的许可证。
  4. 如果您使用SOAP之类的东西来访问服务,那么在GPLv2下应该是可以的。如果您使用RMI,那么情况可能就不同了,因为您要链接到的存根可能在GPL下。

现在,如果您关心Java运行时,我不认为您需要担心。如果Sun只提供Java,我会感到惊讶的。他们有太多的客户依赖于Java可以扩展并用于构建专有应用程序这一事实。通常,软件是在多个许可下发布的,允许用户选择术语(例如,Firefox使用这种方法,并且具有三重授权: GPL、LGPL和MPL)。

票数 4
EN

Stack Overflow用户

发布于 2008-12-29 11:00:23

不管Sun对开源的承诺如何,您都可以使用GPL、LGPL、MIT甚至所谓的“专有”许可证来授权Java应用程序。

“.我可以使用GPL‘’ed库(通过导入它的类)吗?”不是的。除非它不是纯GPL(它可能是双重许可的,有一个“类路径异常”或类似的东西,或者有一个用于外部访问的公共域接口)。但是,这只在分发应用程序时才适用。如果您的应用程序仅在内部使用,则不需要分发源代码。

“.我可以使用LGPL‘’ed吗?”如果将LGPL代码保存在单独的文件中,您可以引用LGPL代码。在Java中,将LGPL代码保存在一个单独的jar中。在C#的情况下,将其保存在一个分离的DLL中。如果允许最终用户替换它,您可能会在应用程序中包括LGPL代码(但这可能比将其作为单独的文件更难)

".我的应用程序能在GPL‘’ed(使用它的服务和API)之上运行吗?“不是,除非这些服务/API有其他许可。

另见:https://stackoverflow.com/questions/137048/how-do-i-tell-if-i-can-re-use-a-free-software-library-in-a-commercial-app

票数 3
EN

Stack Overflow用户

发布于 2008-12-29 11:31:58

“咆哮的GPL”和“LGPL”都是糟糕的律师写的,他们的术语不能说清楚。所以,每个人都在猜测他们到底是什么意思,以及他们是如何应用于现实世界的,/rant

正确的答案是,如果被版权持有人起诉是你真正关心的问题,那么你应该咨询律师。这些许可证太复杂了,你无法在这个论坛上得到一个有意义的答案。

现实的答案是,将其java库置于LGPL下的人最有可能希望将它们链接到/在商业java应用程序中重新分发,因此,如果您只是在应用程序中重新分发那些未经修改的库,那么您就不会遇到任何麻烦。

在GPL下分发java库的人要么不打算将它们嵌入到商业应用程序中,要么不关心法律后果,因为GPL不是库的适当许可,而只是独立的应用程序。我建议在商业代码中避开GPL‘’ed java库。不过,包括一个GPL应用程序和你的商业应用程序是可以的。

关于在GPL‘’ed中运行的问题,只要坚持使用标准API(servlet、jsps、JMX等),您肯定会很好。如果您必须将API专用于服务器,那么问题就更复杂了,所以我肯定会与律师交谈,尽管APIs代码所有者最有可能的意图是应该允许这样的使用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/398280

复制
相关文章
flash在C#中的应用
很多光盘上的程序,比如电脑迷光盘,开头总有一段动画,用来展现企业品牌和LOGO之用。这个动画是Flash做的,而且嵌入到程序中简直做到无缝融合,因为右键点击它也不会有那特有而烦人的Flash右键菜单。
SAP梦心
2022/05/07
1.8K0
L0、L1、L2范数在机器学习中的应用
正则化在机器学习中经常出现,但是我们常常知其然不知其所以然,今天将从正则化对模型的限制、正则化与贝叶斯先验的关系和结构风险最小化三个角度出发,谈谈L1、L2范数被使用作正则化项的原因。
week
2020/06/23
1.1K0
CAS算法在Java中的应用
Java语言中经常靠synchronized关键字保证同步的,这会导致有锁(也是我们经常所得重量级锁,因为其太过于繁重,所以才出现轻量级锁)。
全栈程序员站长
2022/09/08
8350
CAS算法在Java中的应用
泛型在Java中的应用
在对该类进行实例化时,需要将泛型指定为具体的包装类,此时,在实例化泛型类时,就可以起到编译时检查的作用。
头发还在
2023/10/16
1780
说说Shell在代码重构中的应用
代码重构(Code refactoring)有时是很枯燥的,字符串替换之类的操作不仅乏味,而且还容易出错,好在有一些工具可用,以PHP为例,如:Rephactor,Scisr等等,不过现成的工具往往意味着不够灵活,所以今天我要说说Shell在代码重构中的应用。
LA0WAN9
2021/12/14
6370
ArrayList在Java多线程中的应用
开发中,存在这样的业务逻辑,类似倒金字塔结构,下层数据需要基于上层的数据进行逻辑计算。设计思路是:定义一个全局变量upLayerList,来保存上一层的数据。每一层计算仅需要知道upLayerList就可以,不用关心上一层数据怎么获取。当前层计算完毕后,把结果赋值给upLayerList,留给下一层使用。
用户2146693
2019/08/08
1.5K0
ArrayList在Java多线程中的应用
UUID在Java中的实现与应用
UUID的全称为:Universally Unique IDentifier,也被称为GUID(Globally Unique IDentifier)。是一种由算法生成的唯一标识,它实质上是一个128位长的二进制整数。通常表示成32个16进制数组成的字符串,如:21EC2020-3AEA-1069-A2DD-08002B30309D。关于UUID标准的rfc定义详见:http://www.ietf.org/rfc/rfc4122.txt。 当然,GUID一词有时也专指微软对UUID标准的实现,用于Windows操作系统中。
编程随笔
2019/09/11
2.7K0
Fuzzing 在 Java 漏洞挖掘中的应用
前段时间泛微发布了 10.58.6 补丁,修复好几个笔者之前储备的 0day,本文就来介绍其中一系列比较有意思的漏洞,以及分享一下相关的挖掘思路。
evilpan
2023/10/17
5540
Fuzzing 在 Java 漏洞挖掘中的应用
回调函数在Java中的应用
关于回调函数(Callback Function),维基百科已经给出了相当简洁精炼的释义。Java的面向对象模型不支持函数,其无法像C语言那样,直接将函数指针作为参数;尽管如此,我们依然可以基于接口来获得等效的回调体验。
程序猿杜小头
2022/12/01
2.9K0
从GPL中国第一案看GPL开源软件的商业应用
本案作为中国第一个关涉GPL协议的诉讼案件,对开源软件许可协议在中国司法程序中的效力认定和中国法院对于GPL协议的条款解读具有重要的参考意义。本文将对案件中涉及GPL协议的部分展开讨论,并就此提出商业公司使用GPL协议的开源软件时应如何开展风险管控的思考。
腾讯云开发者
2020/01/07
3.1K0
Java中的动态代理以及在框架中的应用
我们先假设现在有怎么一个需求,要求你在不改动原有代码的情况下在所有类的方法前后打印日志。我们很容易想到静态代理,具体做法如下:
烂猪皮
2021/06/09
1.2K0
Java中的动态代理以及在框架中的应用
委托与线程在C#编程中的应用及选择
委托是一种表示对具有特定参数列表和返回类型的方法的引用的类型。可以使用委托将方法作为参数传递给其他方法,或者异步地调用方法。
jackcode
2023/04/26
1.2K0
委托与线程在C#编程中的应用及选择
浅析内存屏障以及在java中的应用
程序在运行时内存实际的访问顺序和程序代码编写的访问顺序不一定一致,这就是内存乱序访问。内存乱序访问行为出现的理由是为了提升程序运行时的性能。这种内存乱序问题主要是由两种原因引起的:
山行AI
2019/07/01
4.9K1
反射机制在Java中的应用场景
【玩转 GPU】AI绘画、AI文本、AI翻译、GPU点亮AI想象空间-腾讯云开发者社区-腾讯云 (tencent.com)
疯狂的KK
2023/07/06
2960
反射机制在Java中的应用场景
SonarQube基础介绍与在代码检测中的应用
官网描述: SonarQube 提高您的团队成员的代码质量和安全性,使所有开发人员能够编写更干净、更安全的代码。 官网地址: https://www.sonarqube.org/ 帮助文档: https://docs.sonarqube.org/latest/
全栈工程师修炼指南
2022/09/29
4K0
SonarQube基础介绍与在代码检测中的应用
springboot entity注解_java注解在框架中的应用
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说springboot entity注解_java注解在框架中的应用,希望能够帮助大家进步!!!
Java架构师必看
2022/08/26
7070
SpotBugs注解SuppressWarnings在Java&Groovy中的应用
我在自己的项目(Java&Groovy)中实验通过,分享一下在两种语言的实践经验。
FunTester
2020/12/01
1.6K0
SpotBugs注解SuppressWarnings在Java&Groovy中的应用
Java多线程编程在JMeter中应用
在最近的工作中,遇到一个需求:在JMeter中生成一个全局唯一变量,获取一次自增x(这个不确定,可能根据响应信息)。这不是我的需求,只是从同事那边听说到的,周末没事儿想起来这个事儿。按照我的方案肯定是用Java或者Groovy去实现这个需求,肯定不会选JMeter。
FunTester
2020/07/21
9800
全代码 | 随机森林在回归分析中的经典应用
公众号后台记录了发表过文章的各项阅读指标包括:内容标题,总阅读人数,总阅读次数,总分享人数,总分享次数,阅读后关注人数,送达阅读率,分享产生阅读次数,首次分享率,每次分享带来阅读次数,阅读完成率。
生信宝典
2023/09/12
6980
全代码 | 随机森林在回归分析中的经典应用
C# SQLite在C#中的安装与操作
先说说优点,它占用资源非常的低,在嵌入式设备中需要几百K的内存就够了;作为轻量级数据库,他的处理速度也足够快;支持的的容量级别为T级;独立: 没有额外依赖;开源;支持多种语言;
zls365
2022/01/14
2.7K0
C# SQLite在C#中的安装与操作

相似问题

在商业中使用(L)GPL代码

30

在Sourceforge上将OSS项目许可证从GPL切换到L-GPL

30

在LGPL代码中包括GPL头

38

GPL及其在Joomla中的应用扩展

12

为java应用程序添加GNU GPL

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文