如何创建引用类路径中其他 jar 的空 jar 文件
您好,
我的 j2ee 应用程序依赖于大量的 jar 文件,因此我想创建一个单独的 jar 文件,其清单属性引用类路径中的这些 jar 文件。 然后我会将这个文件放在 glassfish lib 目录中,以便提到的 jar 成为应用程序的类路径中。
唯一的问题是我不知道如何创建这个单一的 jar 文件。
建议?
问候
HI,
I have a large number of jars that my j2ee app depends on, so I want to create a single jar file with manifest attribute referencing those jar files in classpath.
Then I will place this file in glassfish lib dir so that jars mentioned become in classpath for application.
the only problem is I dont know how to create this single jar file.
suggestions ?
regards
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
jar 程序(用于创建 jar)有一个 -m 条目,用于指定清单文件。
在此清单文件中,您可以使用 Class-Path 属性指定其他 jar 文件的位置。
请参阅此处: http://download.oracle.com/javase /1.3/docs/guide/jar/jar.html
我个人没有尝试过这个,所以我不知道这会有多成功。
如果您担心这一点,您可能只想创建一个包含所有其他 jar 文件的大 jar 文件。我也不知道是否会推荐这个解决方案。
The jar program (used to create jars) has a -m entry used to specify a manifest file.
In this manifest file, you could specify the location of other jar files with the Class-Path attribute.
See here: http://download.oracle.com/javase/1.3/docs/guide/jar/jar.html
I personally haven't tried this, so I don't know how successful this would be.
You might want to just create a large jar file that contains all of your other jar files if you are concerned about this. I don't know if I would recommend this solution either.
你所描述的应该可以正常工作。当加载在其manifest.mf 中具有类路径条目的jar 时,所有引用的jar 都将添加到类路径中。如果您碰巧使用 Maven,他们有一种非常简单的方法将类路径添加到 jar 生成的清单中。
maven 项目的所有依赖项都将添加到类路径条目中。
通过 maven 添加类路径。
如果您选择使用jar 程序,您可以根据上面链接中的示例对清单进行建模。
What you are describing should work fine. When a jar is loaded that has a Class-Path entry in it's manifest.mf, all referenced jars will get added to the class path. If you happen to be using maven, they have a very simple way of adding the classpath to a jar's generated manifest.
All dependencies of the maven project will get added to the Class-Path entry.
Adding a classpath via maven.
If you choose to use the jar program, you can model your manifest off of the example from the above link.