0

我有一个桌面应用程序,它被打包为一个可自执行的 jar 文件,但我的代码需要访问许多 jar 文件,这些文件是我在清单文件的类路径中设置的。但是我遇到的问题是类路径中要使用的所有 jar,我必须将它们保存在与我的可执行 jar 文件相同的目录中。我需要以某种方式合并所有各种 jar,以便我可以在 .mf 文件的类路径中指定此单个 jar。.mf 文件是-->

Class-Path: poi-3.7-20101029.jar poi-examples-3.7-20101029.jar poi-ooxml-3.7-20101029.jar poi-ooxml-schemas-3.7-20101029.jar poi-scratchpad-3.7-20101029.jar jfreechart-1.0.14.jar jcommon-1.0.17.jar jfreechart-1.0.14-experimental.jar jfreechart-1.0.14-swt.jar junit.jar servlet.jar swtgraphics2d.jar gnujaxp.jar iText-2.1.5.jar
Main-Class: gui/GUILauncher

请给我一个解决方案,这样我就可以实现我的目标......

4

2 回答 2

1

您可以在清单中指定每个 at 文件的路径

Class-Path: lib/poi-3.7-20101029 ...

并将图书馆的罐子存放在这里。

虽然我喜欢将所有类组合到一个 Jar 中的想法,但您需要注意可能共享同一路径的资源。我们的应用程序中有这个问题,我们所有的罐子都包含一个版本文件,我们用作标记并通过 Class.getResources(...) 读取

于 2012-08-03T08:51:49.157 回答
0

您不需要将所有这些 jar 文件保存在可执行的 jar 目录中。相反,您可以在 Manifest.mf 文件中指定依赖 jar 的相对路径。例如,您将可执行 jar 保存在 bin 文件夹下,将依赖 jar 保存在 lib 文件夹下。app-root + + \bin + + GuiLauncher.jar + + \lib + junit.jar + servlet.jar

Manifest.mf 类路径将是

Class-Path: ..\lib\junit.jar ..\lib\servlet.jar

于 2012-08-03T08:53:19.413 回答