使用ant创建可执行jar文件,其中包含build.xml文件

时间:2009-08-01 05:03:00

标签: java ant junit executable-jar

我正在尝试使用ant构建应用程序,运行应用程序的main()方法,运行junit测试,并将所有内容打包到jar文件中(source + build + libraries + build.xml)。这些类包括一个带有main()方法入口点的runner类。

然而,目标是包含所有使用的库,如junit.jar和ant build.xml本身。

我想知道是否有可行的jar文件,运行ant构建文件itslef的选定目标,而不仅仅是main()方法。显然我不需要再次运行编译目标,而只需要运行main()方法(运行目标中的java元素)和junit目标。这可能吗?

非常感谢您的见解!

1 个答案:

答案 0 :(得分:3)

“可执行jar”不是你想象的那样。它允许您将所有您的类打包在一起(您可以添加源代码,尽管我看到了一点),并使用jar清单中的Main-Class属性声明一个主类。详细信息为here

然后,您可以使用“java -jar my.jar”命令行启动该jar,该命令行将调用您指定的类的main()方法。您还可以通过清单文件中的specify classpath属性{{3}}来指向应用程序所需的其他jar文件。 不意味着那些罐子存放在你的罐子里;事实上,如果你这样做,JVM将无法从这些jar加载类,除非你采取特殊的预防措施并编写自定义类加载器。