Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
框架/库/API的许可证模型 我是一个程序员,开始为移动电话(java,Android),网页和C++应用程序构建Visual Studio。_Java_.net_Com_Mfc_Licensing - Fatal编程技术网

框架/库/API的许可证模型 我是一个程序员,开始为移动电话(java,Android),网页和C++应用程序构建Visual Studio。

框架/库/API的许可证模型 我是一个程序员,开始为移动电话(java,Android),网页和C++应用程序构建Visual Studio。,java,.net,com,mfc,licensing,Java,.net,Com,Mfc,Licensing,现在的问题是,我不明白许可证是如何运作的。据我所见,我不允许使用任何库,甚至java的基本库也不允许,因为它们要么在GPL下,要么在其他地方 例如,我是否必须付钱给Sun使用他们的java库来构建我的应用程序?或者,当需要发布代码时,如何编写移动应用程序。大公司如何规避这一问题 还有一件事我不明白,我可以免费使用哪些特定于windows的库和API(如MFC、.NET、COM)。这个许可证是如何工作的?如果我刚买了VisualStudio套装,它是否足以让我使用这个api?我现在的处境是,我学会

现在的问题是,我不明白许可证是如何运作的。据我所见,我不允许使用任何库,甚至java的基本库也不允许,因为它们要么在GPL下,要么在其他地方

例如,我是否必须付钱给Sun使用他们的java库来构建我的应用程序?或者,当需要发布代码时,如何编写移动应用程序。大公司如何规避这一问题

还有一件事我不明白,我可以免费使用哪些特定于windows的库和API(如MFC、.NET、COM)。这个许可证是如何工作的?如果我刚买了VisualStudio套装,它是否足以让我使用这个api?我现在的处境是,我学会了使用这些库/API/框架,现在是时候实际使用它们了,我必须为此付出代价。
如果这是真的,那就意味着如果不在其他方面花费数千美元,就不可能构建商业应用程序?

你的问题非常广泛,涵盖了广泛的库和相关许可证。但简单的回答是,您提到的大多数库代码都可以用于商业目的,而无需支付任何费用;特别是Java和.Net代码。各自的平台持有者希望人们使用它们。只有当您进入更专业的情况下,他们才会开始获取收入,通常是通过支持合同或特殊的VM版本(如旧的JRockit VM)。

复制代码并将其作为自己的代码使用与链接到它之间有很大的区别


语义可能很快变得复杂,因为有许多类型的许可证,所以作为一个热情的推荐,请一位熟悉该领域的好律师提供服务。那可以在将来为你省去很多麻烦

大公司会仔细检查其解决方案中包含的每个工具/sdk/库的许可证

关于发布源代码的义务,如果您使用的是MicrosoftSDK或Javabase库,则不必这样做

但为了100%确定,您必须始终阅读许可证。阅读以下Wikipedia文章是了解授权工作原理的良好开端:

  • -如果许可证是copyleft,则该许可证的所有限制也将适用于您的代码,但您将无法对代码或产品施加进一步的限制。这意味着,如果您使用的开放源代码sdk具有Copyleft许可证,则必须将源代码作为开放源代码分发
  • -如果许可证是无版权的,您可以对其施加进一步的限制,如为最终产品增加费用,并拒绝分发代码
  • -如果包含或链接到基于copyleft的许可证,则copyleft标准适用
  • -仅当您将copyleft许可代码直接包含到源代码库中时,copyleft标准才适用。但如果您仅链接到copyleft类型的许可产品,则它不适用
试着花些时间阅读一些关于许可主题的文章,然后你就会更好地理解许可

嗯,,
以下是一些案例以及如何处理:

  • 将源代码复制到自己的代码中 在这里,您应该非常清楚您从何处复制代码,以及代码是在哪个许可证下发布的。大多数情况下,你将不被允许复制它。在几乎所有其他情况下,您都需要在代码中添加原始版权声明。在某些情况下(GPL),您必须在发布产品的任何公开发行版时发布源代码。在某些情况下,您可以购买二进制形式的重新分发权限许可证。在所有情况下,最好的做法是添加注释,标记代码的来源

  • 使用库但不发货 如果您为Android或Windows编译应用程序,您将不可避免地使用它们的API和库。只要这些库属于平台,您就不需要随应用程序一起提供这些库。所以你只需要关心你是否被允许在你的应用中使用它们(链接到它们)。对于操作系统和语言库,通常情况就是这样

  • 随应用程序提供第三方库 在这里,你需要确切地知道你在做什么,因为有很大的不同。这个领域相当复杂。。。一些开发环境和框架包括“可再发行”的软件包,这些软件包将包含在您的应用程序中。但它们也附带了许可条款,值得阅读和理解其中的含义

  • 经验法则:如果您在文档中给予适当的信任,BSD样式的许可证是可以接受的。GPL几乎总是商业应用程序的禁区,除非您愿意随产品发布整个源代码


    免责声明:IANAL从未听说过“无版权”。我知道这些许可证是许可证。@CodeInChaos从发布的链接中读取(GNU公共许可证,较小的GNU公共许可证)