在我的罐子里包装GPL许可的jar而不是开源

时间:2015-01-17 18:14:14

标签: java licensing packaging

我知道这与编程并不严格相关,如果您认为应该移动,请告诉我。

我有一个由我编写的中型Java服务器,我使用各种库。 我有兴趣知道是否可以将库jar包装在我的软件Jar文件中,而无需重新分发我的源代码(例如,无需使我的软件开源)。

使用包装我的意思是将罐子放在我自己的罐子里,而不是它们的内容,并使用Eclipse jarinjar loader来使用它们。

这是最终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

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

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

1 个答案:

答案 0 :(得分:2)

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

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

如果它的Apache获得许可,那么你可以随意使用它。