我知道这与编程并不严格相关,如果您认为应该移动,请告诉我。
我有一个由我编写的中型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
我想避免单独下载这些库,因为我希望在运行程序之前不要强迫每个用户设置类路径。
那么,我可以这样打包库吗?
答案 0 :(得分:2)
如果许可证是GPL并且您只在服务器上运行它,那么您可以在服务器中使用GPL代码。如果您以任何形式向用户分发软件,包括通过浏览器,那么您还必须发布源代码。如果软件只是位于后端并且从未分发过,那么你可以做任何事情。
如果代码是AGPL,那么即使软件通过互联网以任何方式与第三方进行交互,您也必须发布源代码,即使它是在服务器后面。
如果它的Apache获得许可,那么你可以随意使用它。