Antjavac和命令行Javac给出了不同的结果

Antjavac和命令行Javac给出了不同的结果,java,servlets,ant,javac,Java,Servlets,Ant,Javac,我有一个导入一些servlet库的类。当我从命令行编译它时,它是好的 当我使用ant compile任务来编译它时,它给出了在路径中找不到servlet库的错误 这是已知的/常见的情况吗 这是我的蚂蚁目标: <target name="compile" depends="prepare" description="compile the source" > <echo>=== COMPILE === SRCDIR: ${src}/com/udfr/src/java

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

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

这是已知的/常见的情况吗

这是我的蚂蚁目标:

<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>

===COMPILE===SRCDIR:${src}/com/udfr/src/java

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

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

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


您应该在
javac
Ant任务中将JAR文件明确地添加到类路径中。有几种方法可以做到这一点;请阅读

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


您应该在
javac
Ant任务中将JAR文件明确地添加到类路径中。有几种方法可以做到这一点;请阅读

请添加一些代码,这个问题似乎模糊请添加一些代码,这个问题似乎模糊这是ant任务:===COMPILE===SRCDIR:${src}/com/udfr/src/java@Genadinik:基本上,您根本没有指定类路径。这是ant任务:==COMPILE==SRCDIR:${src}/com/udfr/src/java@Genadinik:基本上,您根本没有指定类路径。实际上,有趣的是,我的类路径已经设置好了。我的意思是,Javac可以工作。只是不是我在Jon回答后发布的ant任务。@Genadinik我很确定
CLASSPATH
环境变量被
javac
ant任务忽略了,这就解释了为什么命令行可以工作而ant任务不能工作。请尝试在
javac
Ant任务上指定
classpath
属性。我不确定这一点-我猜classpath是为特定进程设置的,而运行Ant的进程(例如Eclipse)不知道classpath。试着在Javac任务本身中设置类路径。是的,很有趣,添加该类路径有效:classpath=“/usr/local/tomcat/lib/*:/usr/local/jdk1.6.0_24/jre/lib/ext/servlet.jar”,但仅添加该类路径无效:classpath=“/usr/local/tomcat/lib/*”--你知道为什么更优雅的解决方案在这里不起作用吗?@Genadinik你应该读一下Ant中的路径结构:实际上,有趣的是我的类路径已经设置好了。我的意思是,Javac可以工作。只是不是我在Jon回答后发布的ant任务。@Genadinik我很确定
CLASSPATH
环境变量被
javac
ant任务忽略了,这就解释了为什么命令行可以工作而ant任务不能工作。请尝试在
javac
Ant任务上指定
classpath
属性。我不确定这一点-我猜classpath是为特定进程设置的,而运行Ant的进程(例如Eclipse)不知道classpath。试着在Javac任务本身中设置类路径。是的,很有趣,添加该类路径有效:classpath=“/usr/local/tomcat/lib/*:/usr/local/jdk1.6.0_24/jre/lib/ext/servlet.jar”,但仅添加该类路径无效:classpath=“/usr/local/tomcat/lib/*”--你知道为什么更优雅的解决方案在这里不起作用吗?@Genadinik你应该读一下Ant中的路径结构: