【发布时间】:2017-12-26 09:33:33
【问题描述】:
我在包含 build.xml 的目录中使用“ant”命令,但导入语句出错。当它到达这一行时,
<!-- compile.gui -->
<target name="compile.gui" depends="test.properties,compile.api">
<javac srcdir="${src}" destdir="${build.classes}"
classpathref="gui.class.path" debug="on" target="1.8" includeantruntime="false">
<include name="eu/lt4el/gui/**" />
</javac>
</target>
它引用了一个java文件
package eu.lt4el.gui;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import eu.lt4el.common.DocumentStatus;
import eu.lt4el.AppInterface;
import eu.lt4el.defcontext.Definition;
import org.apache.log4j.Logger;
public class LTStartPage extends HttpServlet
{ . . . .
当它尝试编译 java 文件时出现以下错误:
compile.gui:
[javac] Compiling 1 source file to /home/ufuoma/Downloads/ltserver/build/classes
[javac] /home/ufuoma/Downloads/ltserver/src/eu/lt4el/gui/LTStartPage.java:3: error: package javax.servlet does not exist
[javac] import javax.servlet.*;
[javac] ^
[javac] /home/ufuoma/Downloads/ltserver/src/eu/lt4el/gui/LTStartPage.java:4: error: package javax.servlet.http does not exist
[javac] import javax.servlet.http.*;
[javac] ^
[javac] /home/ufuoma/Downloads/ltserver/src/eu/lt4el/gui/LTStartPage.java:13: error: cannot find symbol
[javac] public class LTStartPage extends HttpServlet
[javac] ^
[javac] symbol: class HttpServlet
[javac] /home/ufuoma/Downloads/ltserver/src/eu/lt4el/gui/LTStartPage.java:17: error: cannot find symbol
[javac] protected HttpSession session;
[javac] ^
[javac] symbol: class HttpSession
[javac] location: class LTStartPage
[javac] /home/ufuoma/Downloads/ltserver/src/eu/lt4el/gui/LTStartPage.java:33: error: cannot find symbol
...
...
[javac] 17 errors
BUILD FAILED
/home/ufuoma/Downloads/ltserver/build.xml:305: Compile failed; see the compiler error output for details.
我安装了 Tomcat 和 JRE 8,并且正在运行 Ubuntu,但构建失败。我不知道为什么我有错误。 谢谢
编辑* 类路径在build.xml文件中定义如下:
<!-- class path for gui -->
<path id="gui.class.path">
<pathelement path="${env.CATALINA_HOME}/common/lib/servlet-api.jar"/>
<pathelement path="${lib}/log4j-1.2.14.jar"/>
</path>
【问题讨论】:
-
在您的 build.xml 文件中,变量
gui.class.path没有 Java servlet 库,或者它指向不存在的路径。没有更多细节,我们只能说。 -
我要把build.xml文件的所有代码都放上去吗?
-
gui.class.path在 build.xml 中是如何定义的?我们不需要整个 build.xml 文件,但您需要了解它是如何定义的,以及它是否依赖于其他文件。例如,您可能正在从另一个文件(有时名为 build.properties)加载属性。 -
我已经从xml文件中添加了gui.class.path的描述
-
好的,所以构建依赖于环境变量 CATALINA_HOME。对于安装了默认 Tomcat(即通过包管理器安装)的 Ubuntu 系统,您需要在用于运行
ant命令的同一命令行窗口中执行export CATALINA_HOME /usr/share/tomcat8。
标签: xml ubuntu tomcat servlets ant