我正在尝试为几个Java Maven项目构建一个安装程序(使用Eclipse)。我想使用maven程序集生成一个jar文件(以下称为big-fat jar),其中包含所有安装文件(JAR + docs + others)以及安装程序JAR(构建安装程序项目的结果)。我希望安装程序解压缩大胖jar,因此我希望主类包含在安装程序jar中。用户将获得大胖的jar,我想要java -jar big-fat.jar来执行main.jar中的main。回顾一下,这是大肥罐的结构:
big-fat-jar:
--installer.jar
--application.jar
--readme.doc,
--META-INF:
---- MANIFEST.MF
其中installer.jar是解压缩big-fat-jar并包含main的Java程序,application.jar是正在安装的应用程序(可能有多个jar或war而不是只有一个application.jar)和readme.doc代表任何文档。我的问题是:当用户执行java -jar big-fat-jar时,如何调用main内部installer.jar?我在其他帖子上看到OneJar可能会有所帮助,但我不知道如何表明主要内容位于内部jar中。
答案 0 :(得分: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。
我希望这会有所帮助。
感谢您阅读本文。