java - 框架/库/api的许可模型

标签 java .net com mfc licensing

关闭。这个问题需要更多 focused .它目前不接受答案。












想改进这个问题?更新问题,使其仅关注一个问题 editing this post .

6年前关闭。




Improve this question




我是一名程序员,开始构建小型商业应用程序(用于手机(java、android)、网页和在 Visual Studio 中构建的 c++ 应用程序)。

现在的问题是我不明白许可是如何工作的。从我所看到的情况来看,我不允许使用任何库,甚至是 java 的基本库,因为它们要么在 GPL 之下,要么在其他东西之下。

例如,我是否有义务向 Sun 付费以使用他们的 java 库来构建我的应用程序?或者当需要发布我的代码时如何编写移动应用程序。大公司如何解决这个问题?

我不明白的另一件事是,我可以免费使用哪些特定于 Windows 的库和 API(如 MFC、.NET、COM)。这些许可证如何工作?如果我刚买了 Visual Studio 套装就足以让我使用这个 api 了吗?我的情况是我学会了使用这个库/apis/frameworks,现在是时候实际使用它们来做一些我必须为它们付费的事情了。
如果这是真的,那是否意味着不花数千美元在其他事情上就不可能构建商业应用程序?

最佳答案

以下是一些情况以及如何处理它们:

  • 将源代码复制到自己的代码中
    这是您应该非常清楚您从哪里复制代码以及发布代码的地方。大多数情况下,您将不允许复制它。在几乎所有其他情况下,您都需要将原始版权声明放入代码中。在某些情况下(GPL),您有义务随产品的任何公开发行版一起发布源代码。在某些情况下,您可以购买二进制形式的再分发权许可证。在所有情况下,最好添加注释,标记代码的来源。
  • 使用库但不发货
    如果您为 Android 或 Windows 编译应用程序,您将不可避免地使用它们的 API 和库。只要这些属于该平台,您就不需要将这些库与您的应用程序一起提供。所以你只需要关心你是否被允许在你的应用程序中使用它们(链接到它们)。对于操作系统和语言库,通常是这种情况。
  • 随您的应用程序提供第 3 方库
    同样,您需要确切地知道自己在做什么,因为存在很大差异。这个领域相当复杂......一些开发环境和框架包括“可再发行”包,这些包旨在包含在您的应用程序中。但它们也附带许可条款,值得阅读和理解其中的含义。

  • 经验法则 :如果您在文档中给予适当的信任,BSD 风格的许可证就可以了。除非您愿意随产品一起发布整个源代码,否则 GPL 几乎总是不适合商业应用程序。

    免责声明:IANAL

    关于java - 框架/库/api的许可模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7049634/

    相关文章:

    java - 我可以在父类(super class)的数组上调用子类吗?

    c# - 所有系统引用都缺少 Visual Studio 2013 NuGet Async

    c# - 在服务器上安装了 Word 但找不到它以在组件服务中设置权限

    java - 出站请求的 BindException

    java - 数据源拒绝建立连接,来自服务器 : "Too many connections" 的消息

    java - 为什么这不能形成一个好看的正方形?

    c# - 我应该在工厂模式类中处理异常还是让它们向上传播?

    asp.net - 如何将 IConfigurationRoot 或 IConfigurationSection 转换为 JObject/JSON

    c++ - 通过 COM 在 64 位进程中使用 32 位 DLL

    ms-access - Access MS Access 应用程序中的原始代码