我们可以将Java用于商业用途吗?


49

Java是GPL许可(来自维基百科)。我不确定我是否可以在商业项目中使用它。我已经有一个用Java编写的网站,并且打算将其用于商业用途。那是非法的吗?



2
@Sathya这个问题是关于在Java应用程序中使用GPL插件。这个问题似乎与使用Java本身的合法性有关。
亚当李尔

6
@Shisoft考虑到有多少商业Java应用程序,我认为您不必担心。如果不行,您至少会看到一些诉讼。
亚当李尔

Java SE不再是GPL,而是BCL。Oracle可以随意更改许可证。(FAQ#8oracle.com/technetwork/java/javase/overview/…)。话虽如此,Oracle无法重新发布GPL下发布的Java的较早版本。
snmcdonald 2011年

3
@snmcdonald OpenJDK 6和7继续被许可为具有类路径异常的GPL。“ Sun” JDK 6和更早的版本从来都不是GPL。(IANAL)
汤姆·霍顿-大头钉2011年

Answers:


80

GPL许可证适用于Java本身的源,不适用于使用Java创建的应用程序。仅当您扩展/修改Java语言本身并将结果作为商业产品(或任何其他非GPL许可)转售时,才应担心。


8
这最好是模糊的,这就是为什么存在带有类路径异常的GPL的原因。在JDK上运行的代码已链接到Java库。链接到GPL代码的代码应进行GPL处理(取决于相关司法管辖区的解释)。(我不是一个图层!)
汤姆·霍汀-大头钉

3
@tom-这称为标准库例外-否则,调用GPLed Linux内核的所有代码都必须是GPL
Martin Beckett

4
@Tom:这就是为什么存在classpath异常的原因,以确保不必编译Java代码(如果您下载了OpenJDK版本,则所有代码都依赖于GPL标准库,而如果您下载了商业版本,则无需依赖) GPL。
jwenting

这个答案是正确的,只有正确的,因为它是在GPL下通过classpath异常而不是原始GPL发布的
ihebiheb

19

OpenJDK在GPL许可下具有Classpath Exception。类路径异常部分很重要。它使您可以将OpenJDK与任何许可证的软件一起使用,而不仅限于GPL。特别是,您可以将OpenJDK与专有软件一起使用。


2
Java SE 6及更早版本的@Shisoft“ Sun”实现已获得各种许可证的许可,其中一些许可证与啤酒一样免费,但尚未(尚未)具有任何GPL风格。OpenJDK 6和7(6是7的后向端口)是具有类路径异常的GPLv2。它也打算用于JDK7的“ Sun”发行版。
Tom Hawtin-大头钉

17

Java JDK二进制文件不是 GPL,而是BCL。Oracle可以随意更改许可证。(FAQ#8)话虽如此,Oracle 不能放弃在GPL下发布的Java的旧版本。

请始终向许可证咨询以获取最新信息。截至今天,许可证规定

内部/内部使用:Java SE平台二进制文件(JDK和JRE)已获得Sun二进制代码许可(BCL)的许可,并具有补充条款。对于大多数开发人员和最终用户而言,二进制JDK和二进制JRE是体验Java技术世界所必需的。使用:二进制JDK和JRE可从Sun免费获得(按BCL条款),用于台式个人计算机。用于嵌入式设备和其他计算环境的JDK或JRE可能需要Sun的许可费用。阅读有关Java SE嵌入式使用的更多信息,或联系您当地的Sun办事处以获得许可证。

请记住,您不能按照常见问题解答中的说明在嵌入式设备(例如Google Android)上发布Java SE。

Java SDK源在SCSL和JPL许可下可用。

源代码:研究人员和其他有兴趣探索JDK详细信息的人都可以使用JDK源代码。每个发行版都有其自己的许可证或一组许可证,这些许可证通常包括Sun Community Source License(SCSL)条款。Sun最近开始根据新的Java Research License(JRL)提供对JDK源代码的简化访问。请注意,无论哪种情况(SCSL或JRL),如果您决定在内部将项目用于生产性使用或将产品分发给他人,则必须签署商业协议并满足Java兼容性要求。请与您当地的Sun办事处联系以获得协议。


2
-1您的措辞表明,Sun / Oracle提供的JDK发行版下载曾经是GPL,但现在不再是。这不是真的。他们从来不是GPL。在GPL下,过去和现在都是OpenJDK,它与商业JDK版本不同。作为OpenJDK的版权持有者,他们可以自由提供OpenJDK衍生产品的非GPL商业版本。
克里斯·杰斯特·杨

2
此外,在OpenJDK常见问题解答中:“ Oracle JDK基于OpenJDK源代码。此外,它还包含封闭源代码组件。最终结果根据二进制代码许可获得许可。” 开源的东西是来自第三方的,他们无法获得许可。对于真正免费的,完整的OpenJDK发行版,有IcedTea(大多数GNU / Linux发行商将其用作其主要Java实现)。
克里斯·杰斯特·杨

5

您在混淆几件事。

  • GPL是有关软件重新分发的许可证。即使您使用的Java编译器是GPL编写的,也不会阻止您分发自己的软件,因为这与重新分发Java不同。(而且,Java运行时可以从Oracle单独下载)。
  • GPL与商业软件不兼容。这里的一些答案似乎使“专有vs自由(如语音)”与“商业vs自由(如啤酒)”混淆。确实,销售GPL版本的软件时一定要小心(销售确实算作“重新分发”),但这并不是没有可能。
  • Oracle的Java实现不是GPL版本。在此处阅读其许可证
  • Open JDK是GPL的实现,但是如上所述,这并不意味着它与商业软件不兼容。

1

据我所知,根据当前的许可证,Java受BCL(Sun的二进制代码许可证)的约束,您可以免费将JDK和JRE用于商业用途。使用ECLIPSE作为IDE作为开发Java代码的入口。它是一种开源软件,因此您不需要任何许可。当您从事项目时,您将需要许多其他工具来执行各种工作。大多数必需的功能都在Eclipse中作为插件(可下载)给出。


-1

转移到Java BLC之后,对Java使用的全部许可都需要经过解释,这意味着“如果您确实需要,请与Oracle联系”。

如果他们要您付款,那就意味着付款。根据BLC,Java可以免费用于“通用台式计算机和服务器”(如http://www.oracle.com/technetwork/java/javase/terms/license/index.html),其定义包括单词“通用计算”。

我不知道我的计算是否是通用计算-您确定您的计算是吗?Oracle还添加了诸如“用于最终用户控制下的通用计算功能”之类的条款。

请咨询您的法律部门。


5
这是FUD。我看到周围有很多公司,包括知名银行,都在使用Java,而没有考虑许可问题。
quant_dev

询问Google是否造成任何问题。怀疑甲骨文在版权解释方面的信任度高达90亿美元。希望您是对的-但我敢打赌Google也是如此。甲骨文最近在更改许可证方面大有作为,因此大概他们希望该许可证产生$$的收益。买权人
杰夫·K

-3

否。据我目前所知,GPL仅限制使用其许可的代码或程序(在这种情况下为运行 Java代码的程序)的源代码。但这并不限制Java代码本身。


我不使用代码,仅使用其库。那呢?
Shisoft


1
你的答案是模棱两可的。您是在标题“我们可以将Java用于商业用途”上说“否”吗,还是在问题“是否非法”的最后一部分说“否”?
Bryan Oakley

-3

您可以使用gcc(一种免费软件)来编译应用程序。然后,您可以随意许可您的应用,但不能许可gcc编译器。


3
上次我检查时,gcc没有编译Java。
丹·皮切尔曼
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.