2017-07-20 87 views
0

我在包含build.xml的目錄中使用'ant'命令,但是我收到導入語句的錯誤。當它進入這一行,爲什麼我在使用「ant」命令build.xml時遇到導入錯誤?

<!-- 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> 
+0

在你的build.xml文件中,變量'gui.class.path'沒有Java servlet庫,或者它指向一個不存在的路徑。沒有更多的細節,我們可以告訴。 – stdunbar

+0

我是否爲build.xml文件提供了所有代碼? – TheSolider

+0

如何在build.xml中定義'gui.class.path'?我們不需要整個build.xml文件,但您需要了解它是如何定義的以及它是否依賴於其他文件。例如,您可能正在從另一個文件(有時稱爲build.properties)加載屬性。 – stdunbar

回答

0

需要設置正確根據到類路徑我的安裝參數。 它是:

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

而且我安裝Tomcat的沒有一個/common。所以改爲:

<!-- class path for gui --> 
<path id="gui.class.path"> 
    <pathelement path="${env.CATALINA_HOME}/lib/servlet-api.jar"/> 
    <pathelement path="${lib}/log4j-1.2.14.jar"/> 
</path> 

修復了這個問題。

1

只要運行:

$ export CATALINA_HOME=/opt/tomcat 
$ ant 
+0

並運行「$ CATALINA_HOME/bin/startup.sh」,我得到以下內容:使用CATALINA_BASE:/ opt/tomcat 使用CATALINA_HOME:/ opt/tomcat 使用CATALINA_TMPDIR:/ opt/tomcat/temp 使用JRE_HOME:/ usr/lib/jvm/java-8 -openjdk-amd64 使用CLASSPATH:/opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar Tomcat已啓動。 – TheSolider

+0

對不起 - 我的錯字 - 我修好了。但它看起來像你的Ubuntu不在正常的地方,所以我也更新了答案。 – stdunbar

+0

前段時間我實際上運行了「export CATALINA_HOME =/opt/tomcat」。它工作正常。但是當我運行「螞蟻」時,我仍然得到相同的錯誤。 – TheSolider

相關問題