0

我正在尝试为几个 Java Maven 项目(使用 Eclipse)构建安装程序。我想使用 maven 程序集来生成一个 jar 文件(此后称为 big-fat jar),其中包含所有安装文件(JAR + docs + 其他)以及安装程序 JAR(构建安装程序项目的结果)。我希望安装程序解压缩大 jar,因此我希望将主类包含在安装程序 jar 中。用户将获得 big-fat jar,我希望 java -jar big-fat.jar 执行 installer.jar 中的主要内容。回顾一下,这里是大罐子的结构:

big-fat-jar:
--installer.jar
--application.jar
--readme.doc,
--META-INF:
----MANIFEST.MF

其中installer.jar 是解压big-fat-jar 并包含main 的Java 程序,application.jar 是正在安装的应用程序(可能有多个jar 或wars,而不仅仅是一个application.jar),readme.doc 代表任何文档。我的问题是:当用户执行 java -jar big-fat-jar 时,我该怎么做才能调用主要的 installer.jar?我在其他帖子上读到 OneJar 可能会有所帮助,但我不确定如何表明 main 位于内罐内。

4

1 回答 1

0

正如您所描述的,我从未尝试过在另一个 jar 中使用 jar,但我认为如果您在Manifest.txt文件中指定它,它可能会起作用。你可以这样做:

Manifest-Version: 1.0
Created-By: StackOverflow
Main-Class: installer.MyClass 

在上面的示例中,MyClass文件将具有main运行时将调用的方法java -jar <jarname.jar>

有关更多信息,请参见本页顶部:https ://docs.oracle.com/javase/tutorial/deployment/jar/appman.html

Sierra 和 Bates 的Head First Java还讨论了如何使用一个类而不是另一个 Java jar 中的 Java jar 来执行此操作。

我希望这有帮助。

谢谢您阅读此篇。

于 2015-09-28T20:12:29.343 回答