Java 使用包含在罐子中的罐子

Java 使用包含在罐子中的罐子,java,jar,include,classpath,Java,Jar,Include,Classpath,我正在开发一个依赖于库(jar文件)的小框架。我设法在最终的frameworkjar文件中包含了这个依赖项。但是当我包含这个框架jar(包括另一个库)时,我可以使用框架的类,但不能使用框架jar中包含的依赖库的类 我怎样才能解决这个问题?在我的框架中包含第三方库(即使是在GPL许可下)是一种好的做法吗?我只是想减少框架用户(开发人员)必须做的工作 我怎样才能解决这个问题 如果使用由提供的特殊类加载器,嵌套JAR是可能的,但这会导致相当长的启动时间,当然还会增加另一种依赖性和复杂性 在JAR文件中

我正在开发一个依赖于库(jar文件)的小框架。我设法在最终的frameworkjar文件中包含了这个依赖项。但是当我包含这个框架jar(包括另一个库)时,我可以使用框架的类,但不能使用框架jar中包含的依赖库的类

我怎样才能解决这个问题?在我的框架中包含第三方库(即使是在GPL许可下)是一种好的做法吗?我只是想减少框架用户(开发人员)必须做的工作

我怎样才能解决这个问题

如果使用由提供的特殊类加载器,嵌套JAR是可能的,但这会导致相当长的启动时间,当然还会增加另一种依赖性和复杂性

在JAR文件中管理具有多个依赖项的类路径是所有Java开发人员都熟悉的事情。我认为试图避免它没有任何价值

在我的框架中包含第三方库(即使是在GPL许可下)是一种好的做法吗


这取决于-如果您的框架不是GPL,您就违反了许可证,可能会被起诉。无论您是否实际包含GPL jar,这都无关紧要。

“在我的..中包含第三方库是一种好的做法吗?”如果除此之外还有其他内容。..apps.run-time类路径,答案几乎肯定是“否”。可以跳转到其他罐子中装入罐子,但部署应用程序更有意义。以一种适用于Java应用程序的方式。什么类型的应用程序。它是?(例如Web应用程序、桌面应用程序、控制台应用程序……)这样做,只会让开发人员的生活更加困难,因为jar文件不应该相互嵌套。Google for java jar教程。有时客户只需要1个jar,但您有3-d party jar(如gson、log4j…)和您的私人5-10个jar。使用
ant
可以打开所有jar,并使用所有包(很多包)获取新的jar。但由于您向客户提供了javaDoc,所以无论您的新jar有多复杂都无关紧要。因此,我在框架的文档中包含了这种依赖关系。