Ant Javac 和 Commandline Javac 给出不同的结果

问题描述 投票:0回答:3

我有一个导入一些 servlet 库的类。当我从命令行编译它时,一切都很好。

当我使用ant编译任务编译它时,它给出了在其路径中找不到servlet库的错误。

这是已知/常见的现象吗?

这是我的 Ant 目标:

<target name="compile" depends="prepare" description="compile the source" >
    <echo>=== COMPILE === SRCDIR: ${src}/com/udfr/src/java </echo> <!-- Compile the java code from ${src} into ${build} -->
    <javac srcdir="${src}/com/udfr/src/java" destdir="${dist}/WEB-INF/classes"/>
</target>
java servlets ant javac
3个回答
2
投票

如果您没有在

javac
任务的类路径中正确指定 servlet 库,这是很常见的情况...我怀疑这就是问题所在。如果您发布失败的任务和有效的命令行,我们将能够提供更多帮助。


2
投票

由于某种原因,当您在命令行中编译程序时,包含 Servlet API 的 JAR 文件是类路径的一部分。但是,它不在

javac
Ant 任务的类路径中。

您应该将 JAR 文件显式添加到

javac
Ant 任务中的类路径中。有几种方法可以做到这一点;请阅读 http://ant.apache.org/manual/Tasks/javac.html


0
投票

差异是因为 ANT 的 javac 默认情况下调试模式为 false。

转向

调试=“真”

在ANT脚本的javac中会生成相同的类文件 这是在cmd中使用maven或普通javac生成的。

© www.soinside.com 2019 - 2024. All rights reserved.