哪些Ant任务不适用于JRE?

时间:2018-06-26 18:43:58

标签: java ant

Ant手册(https://ant.apache.org/manual/install.html)指出:

注意:如果不存在JDK,则只有运行时(JRE),那么许多任务将无法工作。

我们正在尝试使JDK脱离我们的环境,仅使用JRE,这是我们使用的最后一个需要JDK的应用程序,但它不提供自己的副本。

我们已经在JRE上使用Ant进行了测试,到目前为止,我们使用的所有Task均未在JRE下失败。在我们进行此更改之前,是否有人知道JRE无法使用哪些Task?我们只是不想朝自己的脚下开枪。

3 个答案:

答案 0 :(得分:2)

实际上事情是二进制的:您执行的Ant任务需要JDK,例如编译任务(javac),在这种情况下,由于JRE没有编译器可执行文件,Ant构建将失败。否则您的任务不需要JDK(例如文件复制任务),在这种情况下,Ant构建将能够处理该任务。

请注意,官方文档还指出,对于当前版本(1.10),JDK会按要求显示:

  

对于当前版本的Ant(1.10),您还需要一个JDK   必须安装在系统上,版本8或更高版本。越多   最新的Java版本,您将获得更多的Ant任务。

因此,为了防止出现任何副作用,根据所使用的版本,应确保使用JDK而不是JRE。

答案 1 :(得分:1)

需要JDK才能将Java代码编译为字节码。 <javac><jspc>确实需要它,可能还需要很多相关任务。

但是黄金法则应始终适用-如果不确定,只需对其进行测试。

答案 2 :(得分:1)

首先,它有助于理解JDK和JRE之间的区别。

JRE是运行Java应用程序所必需的一切。它包含JVM以及一些操作工具和浏览器插件。

JDK包含JRE,Java编译器,文档生成和调试工具。

任何Ant编译和文档编制任务都需​​要JDK,因为这是包含要尝试执行的工具的软件包。

不依赖JDK附带的其他工具的任务将正常运行。

绝对需要JDK的任务:Depend,Javac,JspC,Javadoc,Javah

参考文献:

What is the difference between JDK and JRE?

https://ant.apache.org/manual/tasksoverview.html