将 GPL 许可的 jar 打包到我的 jar 中而不使其开源

Packaging GPL licensed jar in my jar without making it open source

我知道这与编程没有严格关系,如果您认为应该移动它,请告诉我。

我有一个中型的 Java 服务器,我在其中使用了各种库。 我很想知道是否可以将库 jar 打包到我的软件 Jar 文件中,而不必重新分发我的源代码(例如,不必让我的软件开源)。

对于打包,我的意思是将 jar 放入我自己的 jar 中,而不是它们的内容,然后使用 Eclipse jarinjar 加载程序来使用它们。

这是最终 Jar 中的示例文件结构:

/mysource/*
/org/eclipse/jarinjarloader/*
/library1.jar
/library2.jar

特别是,这些是我正在使用的库:

MySQL connector/J (license: GPL)
A few libraries licensed with Apache Software License version 2.0

我想避免单独下载这些库,因为我想避免在 运行 我的程序之前强制我的每个用户设置类路径。

那么,我可以这样打包库吗?

如果许可证是 GPL,而您 运行 它仅在您的服务器上,那么您可以在您的服务器中使用 GPL 代码。如果您以任何形式向用户分发软件,包括通过浏览器,那么您也必须发布您的源代码。如果该软件只是位于后端并且从不分发,那么您可以做任何事情。

如果代码是 AGPL,那么如果通过互联网或第三方以任何方式与软件交互,即使它在服务器后面,您也必须发布源代码。

如果它是 Apache 许可的,那么您可以随意使用它。