我见过像http://one-jar.sourceforge.net/和http://fjep.sourceforge.net/index.html之类的程序会将你的应用程序jar和任何依赖项推广到一个可执行的jar中。
这样做的主要原因是什么?
答案 0 :(得分:9)
有关:
反对:
一般来说,这对于快速原型设计来说确实是一种很好的方式,但如果在更大的项目中使用,可能会有所不同。
答案 1 :(得分:5)
我在工作场所看到的一个正当理由是,供应商提供的修补程序jar需要在类路径中的原始版本之前。
但是,此应用程序是通过java webstart(jnlp)启动的,从java版本6开始,不再保证jar文件依赖项的顺序。
因此,确保重复的类文件处于正确顺序的唯一方法是将它们重新打包到超级jar中,保留最新的修补类文件并丢弃旧的重复文件。
答案 2 :(得分:4)
适用于依赖项的再分发许可证是构建“超级”jar的一个主要原因。当一个人创建一个“超级”jar时,通过“超级”jar的分发发生任何依赖关系的分发。在案例法并未充分涵盖这种情况的地区,人们可能会承担责任。
此外,某些商业上获得的依赖项可能会禁止重新打包依赖项,尤其是在原始分发不受保护的情况下。
PS:这不是法律建议。任何阅读此内容并依据此做出商业决策的人都应该咨询律师。
答案 3 :(得分:2)
有关:
反对:
一般来说,如果它是一个小型实用程序应用程序,我会将它捆绑到一个jar中。对于较大的应用程序(可能需要安装程序),或者如果它是供其他人使用的库,我不会打扰。它只是可能破坏的事物链中的另一个环节。
答案 4 :(得分:1)