【问题标题】:creating an executable jar file with ant which includes the build.xml file使用 ant 创建包含 build.xml 文件的可执行 jar 文件
【发布时间】:2010-11-15 23:56:05
【问题描述】:

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

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

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

非常感谢您的洞察力!

【问题讨论】:

  • denchr,我回答你的问题了吗?如果没有,请澄清您要达到的目标,我会编辑我的回复(或者其他人会提供更好的回复)。如果我这样做了,请投票或接受答案 - 这就是 SO 的工作原理,而对于大多数问题,您似乎都没有这样做。
  • 是的,你确实做到了。谢谢一堆。让我接受你的回答,对此感到抱歉。

标签: java ant junit executable-jar


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2014-06-24
    • 2016-03-13
    • 1970-01-01
    • 2015-01-13
    • 1970-01-01
    • 1970-01-01
    • 2012-05-19
    • 2011-03-03
    • 2013-12-26
    相关资源
    最近更新 更多